基于CentOS8.2安装MySQL

检测系统是否已安装Mysql

执行命令rpm -qa | grep mysql 如果是下图所示,表示已安装

img

卸载命令

如果要重新安装需要选择执行以下命令进行mysql卸载

1
2
rpm -e mysql  // 普通删除
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删

rpm安装下的需逐行删除

1
2
3
4
5
6
7
8
rpm -e --nodeps mysql-community-debugsource-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-icu-data-files-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-server-debuginfo-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-libs-debuginfo-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-server-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-client-plugins-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-client-debuginfo-8.0.30-1.el8.x86_64
rpm -e --nodeps mysql-community-server-debug-debuginfo-8.0.30-1.el8.x86_64

查找mysql相关目录

1
find / -name mysql

对这些目录一个个的进行删除

1
rm -rf

删除/etc/my.cnf 文件

1
rm -rf /etc/my.cnf

删除 /var/log/mysql/mysqld.log文件

1
rm -rf /var/log/mysql/mysqld.log

下载

1
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm

image-20220930134049957

第二步:安装

1
yum install mysql80-community-release-el8-3.noarch.rpm

image-20220930134154945

查看该yum源支持哪些版本

1
yum repolist all | grep mysql

image-20220930134311029

安装

安装过程会询问你,一直y即可

1
2

yum install mysql-community-server

如遇报错

1
Error: Unable to find a match: mysql-community-server

执行

1
yum module disable mysql

image-20220930134723042

继续安装

image-20220930134802715

启动、查看、开机自启

启动MySQL:

1
systemctl start mysqld

查看MySQL状态:

1
systemctl status mysqld

image-20220930135020609

开机自启:

1
2
3
4
# 开机自启
systemctl enable mysqld
# 重新加载系统配置,使开机自启立马有效
systemctl daemon-reload

登录MySQL8

MySQL较大的变动就是,第一次安装会给root用户一个临时密码,我们需要拿到这个临时密码:

1
grep 'temporary password' /var/log/mysqld.log

img

还有一种查看默认密码的方式:

1
vim /var/log/mysqld.log

img

ok,拿到默认密码后,登录:

会提示你输入密码,将密码复制即可

1
mysql -u root -p

img

改密码

  1. 改密码,

需要知道的是: mysql新的安全机制要求,mysql的密码必须包含英文大小写、数字以及特殊字符

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'

img

刷新:

1
flush privileges;

远程连接

换库

1
use mysql;

查看数据库用户

1
select user,host from user;

img

可以看到,root用户的host未localhost,这意味着root用户只能在本机连接数据库。

所以我们需要将他改为所有机器都能连:(或者指定为ip)

1
update user set host='%' where user='root';

img

因为:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 由于用的是破解版的navicat,所以只能用第二种方法解决了

修改密码,并且不对密码加密:

1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

修改完成,退出:

1
exit

远程连接测试

服务器防火墙记得开放3306

image-20220930135858626