【mysql】centos7下安装mysql8.0.16(rpm方式)

一、下载

地址:https://downloads.mysql.com/archives/community/

选择如下:

二、安装

 将下载后的rpm包上传到虚拟机/服务器上,我这里是放在了/usr/local/mysql/下,如果没有mysql文件夹新建一个即可。

1. 解压.tar文件

tar -xf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar

2. 开始安装如下四个rpm包,执行命令如下,注意要按照顺序执行:

(1)rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm

(2)rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm

(3)rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm

(4)rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm

注意:这里我在执行到第二个命令的时候,报错了,报错信息如下:

网上搜索处理办法如下,没有报错此步骤可以省略。

执行命令:yum remove mysql-libs 作用是清除之前安装过的依赖。

执行结束后,继续执行上面命令没有遇到任何问题。

三、启动与修改密码

1. 启动mysql

执行启动命令:systemctl start mysqld

启动成功后,查看启动状态:systemctl status mysqld

2. 查看临时密码

执行命令:cat /var/log/mysqld.log | grep "temporary password"

红框内的即为临时密码

当然也可以使用跳过登陆密码的方式访问mysql,具体方法参考下面

3. 使用临时密码登陆

命令如下:mysql -uroot -p 之后回车,输入临时密码再回车,即可登陆。

4. 跳过密码登陆方式:

(1)首先编辑my.cnf文件:命令如下:vi /etc/my.cnf

(2)在my.cnf文件中添加skip-grant-tables,保存退出。

(3)由于修改了配置文件,所以需要重新启动mysql 执行命令:systemctl restart mysqld

(4)之后重新使用登陆命令 mysql -uroot -p 进行登陆,在输入密码的地方什么都不填写,直接回车即可登陆。

5. 设置登陆密码:

执行命令:alter user user() identified by "Aa123456.";  即将密码设置成  Aa123456. 

这里要注意密码一定要复杂一点,不然会报错

四、使用navicat连接mysql

1. 之后,我们来使用navicat来连接mysql,发现无法连接,报错如下:意思是主机不被允许连接,因为虚拟机上安装的mysql没有授权其他主机连接它,需要我们进行授权。

2. 修改权限,让navicat可以连接上mysql

(1)查看所有数据库:show databases;

(2)使用名称为mysql的数据库:use mysql

(3)展示mysql数据库中所有的表:show tables;

(4)查看user表中的数据:select user,host from user;

可以看到root用户,只能本地连接,需要我们对其进行修改。

(5)修改成任何远程主机都可以访问数据库:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

但是我这里报错了,没有报错的伙伴可以跳过:

原因是:当前user表中没有root - %记录; 可以更新root - localhost 为 root - %

修改命令:update user set host = '%' where user = 'root' and host='localhost';

修改完成后需要刷新:FLUSH  PRIVILEGES;

修改完成后重新访问,发现再一次报错,结果如下:

这里搜到的原因是:

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 

解决办法有两种:

(1)把mysql用户登录密码加密规则还原成mysql_native_password. 

(2)升级navicat驱动。

这里采用第一种方式:

命令如下:alter user 'root'@'%' identified with mysql_native_password by 'Aa123456.'; 之后刷新FLUSH  PRIVILEGES;

刷新后,重新访问,发现已经可以访问了。成功!!

参考:

1. https://blog.csdn.net/ypp91zr/article/details/84801204

2. https://blog.51cto.com/kangxi/2439808

3. https://blog.csdn.net/qq_38366063/article/details/100736999

4. https://www.cnblogs.com/nhdlb/p/13846034.html

5. https://blog.csdn.net/mxskymx/article/details/88765072

6. https://blog.csdn.net/seventopalsy/article/details/80195246

原文地址:https://www.cnblogs.com/flyinghome/p/14350031.html