1. 查看当前是否有已经安装好的mysql,先卸载
# 命令
rpm -qa|grep -i mysql
# 结果显示
mysql-community-libs-5.7.42-1.el7.x86_64
mysql-community-common-5.7.42-1.el7.x86_64
mysql-community-libs-compat-5.7.42-1.el7.x86_64
mysql57-community-release-el7-10.noarch
mysql-community-client-5.7.42-1.el7.x86_64
mysql-community-server-5.7.42-1.el7.x86_64
2. 按照结果一个个卸载
# 卸载前关闭mysql服务(不要直接粘贴复制,根据自己安装过的去卸载,如果没有,就不用卸载)
rpm -ev --nodeps mysql-community-common-5.7.42-1.el7.x86_64
rpm -ev --nodeps mysql-community-libs-compat-5.7.42-1.el7.x86_64
rpm -ev --nodeps mysql57-community-release-el7-10.noarch
rpm -ev --nodeps mysql-community-client-5.7.42-1.el7.x86_64
rpm -ev --nodeps mysql-community-server-5.7.42-1.el7.x86_64
# 继续查看是否还有残留
find / -name mysql
# 结果显示
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysq
# 继续清除上面的残留
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysq
# 以防万一 接着删除配置文件
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log
3.开始安装mysql 8.0(如果本来就没有安装过mysql,直接从这一步开始)**
# 准备工作,先更新本地mysql的linux秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 1. 更新yum源
# yum update 升级所有包,会保留旧版本的 package,更新系统内核根据 obsoletes 配置而定
yum update
# 2. 添加MySQL的官方yum存储库
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 3. 安装MySQL 8.0服务器和客户端软件包
yum -y install mysql-server
# 4. 启动MySQL服务
systemctl start mysqld
# 5. 设置开机自启动
systemctl enable mysqld
# 6. 查看mysql的默认密码
grep 'password' /var/log/mysqld.log
4. 红框里面就是密码,不包含空格
# 7. 启动mysql
mysql -uroot -p # 按下enter键 输入默认密码(即上面红框里面的密码,每个人都不一样)
# 8. 在mysql登录页面输入以下命令
# 此命令是先按照mysql的密码修改规则修改密码 不然不能做其他操作
alter user 'root'@'localhost' identified by 'Root@123';
# 退出
exit
# 重启MySQL服务
systemctl restart mysqld
# 9. 使用新密码重新mysql,然后执行以下命令
mysql -uroot -pRoot@123
# 切换到系统自带的mysql数据库
use mysql
# 然后修改root用户的主机,此处修改的目的是允许所有用户远程链接,默认root用户只能被localhost链接
update user set host='%' where user='root';
# 再次退出,重启服务,再次重新连接
exit
# 重启MySQL服务
systemctl restart mysqld
mysql -uroot -pRoot@123
# 10. 进入mysql页面后,修改当前用户的密码权限校验,8.0权限校验变量已经被更改,注意输入
set global validate_password.policy=low; # 密码策略最低
set global validate_password.length=1; # 密码长度为1
# 11. 修改密码为123456,8.0更改了密码的加密方式,如果使用上面的修改方式会导致远程连接不上
# 如果执行失败 退出数据库 重启mysql服务 进入mysql再次执行即可
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 12. 开放远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 13. 刷新权限
flush privileges;
# 退出并且在windows上使用navicat尝试远程连接
exit
# 重启MySQL服务
systemctl restart mysqld
5. Navicat尝试远程连接
主机名或IP地址处写入虚拟机对应的ip地址,如果window本地添加了域名映射,则可直接输入主机名。(关于如何添加域名映射,可参考下面文章)
Windows本地如何添加域名映射?(修改hosts文件)-CSDN博客
6. 点击连接测试,如果提示连接测试成功,则代表可以远程连接