卸载mariadb
由于centOS7中默认安装了MariaDB,会与我们即将安装的MySQL产生冲突,因此需要进行卸载
- 查看是否安装了MariaDB
rpm -qa | grep -i mariadb
- 卸载MariaDB
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
- 查询下本机的mysql是否卸载干净
rpm -qa | grep mysql
安装MySQL
- 下载MySQL仓库
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
- 安装MySQL仓库
yum -y install mysql80-community-release-el7-3.noarch.rpm
安装过程中如果出现如下报错:
则需要执行以下指令:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
-
修改MySQL版本
目前使用yum默认安装的是MySQL8.0,如果需要安装低版本,比如常用的MySQL5.7的话需要修改/etc/yum.repos.d/mysql-community.repo配置文件
将5.7版本的enabled设置为1,将8.0版本设置为0; -
安装MySQL数据库
yum -y install mysql-community-server
- 开启mysql服务
systemctl start mysqld.service
- 查看mysql默认密码
cat /var/log/mysqld.log | grep password
- 登录
mysql -uroot -p
- 小结
至此MySQL已经安装完毕,我们可以本机进行操作,如果想远程连接到此数据库,需要进行一些额外的配置(ip白名单)
配置
- 设置弱密码策略
set global validate_password_policy=0;
set global validate_password_length=4;
- 修改初始密码
SHOW variables LIKE 'validate_password%';
然后执行修改密码指令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
以后便可以使用你自己设置的密码登录
- 设置远程连接
- 查看所有数据库
show databases
- 切换数据库
use mysql
- 查询访问ip
select user,host from user;
- 允许所有ip访问
update user set host = '%' where user = 'root';
- 刷新权限
flush privileges;
- 配置文件地址:
/etc/my.cnf
如果想修改端口可以添加:
port = 53306
- 其他注意事项
注:如果使用客户端连接提示了plugin caching_sha2_password错误,这是因为MySQL8.0的密码策略默认为caching_sha2_password(MySQL5.7无此问题)
update user set plugin = 'mysql_native_password' where user = 'root';
flush privileges; # 刷新权限 权限更新后刷新才会起作用
如果使用DBeaver建立MySQL 8+连接,无需修改默认密码策略,但可能会提示Public Key Retrieval is not allowed错误
这是因为MySQL8.0的密码策略默认为caching_sha2_password认证,密码在传输过程中必须使用 SSL 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;需要修改AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥,在Dbeaver的修改如下:
修改完成后可以正确建立远程连接
忘记密码
UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';