linux安装mysql

主要参考文章:

linux 安装mysql8.0 超详细教程_yang灬仔-优快云博客_linux 安装mysql8

这个文章开头下载的是mysql-8.0.20版本的,tar解压的确是mysql-8.0.21版本,这一点要注意

1、在 /use/local下创建mysql文件夹 mkdir mysql

下载Mysql

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

由于在虚拟机上直接wget下载很慢,所以我是直接在自己电脑上浏览器下载下来的,然后通过rz上传到虚拟机上的。

解压

tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

 -C /export/servers/      可加可不加,加上了就是解压至指定路径下,不加就是默认解压到当前目录下。

 重命名文件夹 

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0

这里我放错位置了,应该将mysql-8.0这个文件放到/usr/local下,不是/usr/local/mysql/下

[root@ha-01 local]#  pwd
/usr/local
[root@ha-01 local]#  mv ./mysql/mysql-8.0 ./

创建data文件夹 存储文件

创建用户组以及用户和密码

[root@ha-01 mysql-8.0]# groupadd mysql

[root@ha-01 mysql-8.0]# useradd -g mysql mysql

切换到bin目录下 cd bin

初始化基础信息 

[root@ha-01 bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql-8.0 --datadir=/usr/local/mysql-8.0/data/ --initialize

初始化后会出现一个临时密码

编辑my.cnf文件  vi /etc/my.cnf 注释mysqld_safe,我的/etc/下没有my.cnf文件只有一个my.cnf.rpmsave文件,上网查了之后发现它是我之前卸载mysql留下的my.cnf的备份文件,我把它重命名为my.cnf,进行内容修改。

[root@ha-01 etc]# mv my.cnf.rpmsave my.cnf
[root@ha-01 etc]# vi my.cnf

如果没有my.cnf文件也不要紧,直接在/etc/下新建一个这个my.cnf文件,把下边内容写进去就行。

内容修改如下

basedir=/usr/local/mysql-8.0/
datadir=/usr/local/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4

 添加mysqld服务到系统 

[root@ha-01 mysql-8.0]# cp -a ./support-files/mysql.server /etc/init.d/mysql

 [root@ha-01 mysql-8.0]# chmod +x /etc/init.d/mysql          #添加权限
[root@ha-01 mysql-8.0]# chkconfig --add mysql                  # 添加服务
[root@ha-01 mysql-8.0]# service mysql start                          #启动mysql   
Starting MySQL.Logging to '/usr/local/mysql-8.0/data/ha-01.err'.
. SUCCESS! 
[root@ha-01 mysql-8.0]# service mysql status                 #查看启动状态
 SUCCESS! MySQL running (11160)

   #将mysql命令添加到服务
[root@ha-01 mysql-8.0]# ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin     

    #查看临时密码是 YAuK9vuNKT_P
[root@ha-01 mysql-8.0]# cat /var/log/mysqld.log | grep password
2021-11-14T15:39:52.219609Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: YAuK9vuNKT_P

 登录mysql  mysql -uroot -p YAuK9vuNKT_P

但是,我不知道为什么就是登不上去,总是报这个错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

然后我就换了一种方式登录

先停止mysql服务

再进入mysql安装目录bin/ 使用safe模式,进行重启:

[root@ha-01 bin]# ./mysqld_safe --skip-grant-tables

 修改mysql8密码与之前版本不同,具体可以见博客:

修改mysql密码错误:check the manual that corresponds to your MySQL server version for the right syntax_古柏树下的博客-优快云博客

修改完密码后,执行 flush privileges;  使密码生效

 退出后,重新登录上mysql

 解决之前的启动不了 mysqld的情况:

 cd /usr/local/mysql-8.0/ support-files/ 该路径下输入命令:

将文件mysql.server复制到/etc/init.d/下,

cp ./mysql.server /etc/init.d/

在进入/etc/init.d/下,重命名为mysqld

mv mysql.server mysqld 

centos7上mysql安装完毕! 

开始设置远程连接

 发现root的host是localhost,不是%,可以加个host是%的root账号:
输入:CREATE USER ‘'root'@'%' IDENTIFIED BY '123456';

再查下用户
输入:select host,user from user;

 输入:GRANT ALL ON *.* TO 'root'@'%';
配置成功

 

解决办法参考:连接mysql出现‘mysql执行错误1251'的解决方法_韩韩的博客-优快云博客_1251mysql

出现错误是由于mysql版本问题,mysql8.0版本与mysql5.0版本的加密方式不同,导致出现上述报错

首先进入mysql控制台

输入以下命令:(让你的密码永不过期)

 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;

 

 再次FLUSH PRIVILEGES;

然后连接mysql front

 出现了这个报错,目前还没解决,好像不怎么影响使用。

start-all.sh之后,在启动hive后输入show databases;后出现这个报错:参考博客

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeExcepti_大数据-优快云博客

在给新用户授权时出现问题了就是下图第二行的error 1396,参考博客:mysql版本:‘for the right syntax to use near ‘identified by ‘password‘ with grant option‘_记录编程生活-优快云博客

后又重新打开hive,初始化了一遍,命令:

cd /export/servers/hive/bin
./schematool -dbType mysql -initSchema

 终于解决了这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又是被bug折磨的一天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值