一、准备工作(新机跳过)
1、查看是否安装过mysql
rpm -qa | grep -i mysql
2、删除mysql
yum -y remove MySQL-*
一般用rpm -e 的命令删除mysql,这样表面上删除了mysql,可是mysql的一些残余程序仍然存在,并且通过第一步的方式也查找不到残余,而yum命令比较强大,可以完全删除mysql.(ps:用rpm删除后再次安装的时候会提示已经安装了,这就是rpm没删除干净的原因)
3、把所有出现的目录统统删除
find / -name mysql
查找mysql的一些目录,把所有出现的目录删除,可以使用rm -rf 路径,删除时请注意,一旦删除无法恢复。
4、删除配置文件
rm -rf /etc/my.cnf
5、删除mysql的配置密码
rm -rf /root/.mysql_sercret
删除mysql的默认密码,如果不删除,以后安装mysql这个sercret中的默认密码不会变,使用其中的默认密码就可能会报类似Access denied for user ‘root@localhost’ (using password:yes)的错误.
二、安装mysql8
1、下载命令
不使用yum安装官方mysql,下载tar包进行解压比较好。
[root@localhost softhere]# tar -xvf mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar -C /opt/module/
mysql-community-client-8.0.22-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm
mysql-community-common-8.0.22-1.el7.x86_64.rpm
mysql-community-devel-8.0.22-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.22-1.el7.x86_64.rpm
mysql-community-libs-8.0.22-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.22-1.el7.x86_64.rpm
mysql-community-server-8.0.22-1.el7.x86_64.rpm
mysql-community-test-8.0.22-1.el7.x86_64.rpm
[root@localhost softhere]#
2、安装common
[root@localhost module]# rpm -ivh mysql-community-common-8.0.22-1.el7.x86_64.rpm
警告:mysql-community-common-8.0.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.22-1.e################################# [100%]
[root@localhost module]#
3、安装libs
[root@localhost module]# rpm -ivh mysql-community-common-8.0.22-1.el7.x86_64.rpm
警告:mysql-community-common-8.0.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.22-1.e################################# [100%]
[root@localhost module]# rpm -ivh mysql-community-libs-8.0.22-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-libs-8.0.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.22-1.el7################################# [100%]
[root@localhost module]#
4、安装client
[root@localhost module]# rpm -ivh mysql-community-client-8.0.22-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-client-8.0.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.22-1.e################################# [100%]
[root@localhost module]#
5、安装server
[root@localhost module]# rpm -ivh mysql-community-server-8.0.22-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-server-8.0.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.22-1.e################################# [100%]
[root@localhost module]#
6、通过 rpm -qa | grep mysql 命令查看 mysql 的安装包
[root@localhost module]# rpm -qa | grep mysql
mysql-community-libs-8.0.22-1.el7.x86_64
mysql-community-common-8.0.22-1.el7.x86_64
mysql-community-client-8.0.22-1.el7.x86_64
mysql-community-server-8.0.22-1.el7.x86_64
[root@localhost module]#
7、通过以下命令,完成对 mysql 数据库的初始化和相关配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
[root@localhost module]# mysqld --initialize
[root@localhost module]# chown mysql:mysql /var/lib/mysql -R
[root@localhost module]# systemctl start mysqld.service
[root@localhost module]# systemctl enable mysqld
[root@localhost module]#
8、通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码
[root@localhost module]# cat /var/log/mysqld.log | grep password
2020-10-22T08:06:16.367199Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: TSKEh,g);8o1
[root@localhost module]#
9、通过 mysql -uroot -p 敲回车键进入数据库登陆界面
[root@localhost module]# mysql -uroot -p
Enter password:
10、输入之前的密码
11、通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 命令来修改密码。修改完成后,exit 退出重新登陆
如果root用户失败,创建新用户来登录
mysql> create user 'leilei'@'%' identified by 'leilei';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on . to 'leilei'@'%'; Query OK, 0 rows affected (0.00 sec)
12、通过以下命令,进行远程访问的授权
1、
create user 'root'@'%' identified with mysql_native_password by 'root';
2、
grant all privileges on *.* to 'root'@'%' with grant option;
3、
flush privileges;
13、通过 ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; 命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
14、通过 flush privileges; 命令刷新修该后的权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
15、退出后,用sqlyog发现连接成功