0.检查是否有旧的 mariadb 包,需要卸载
rpm -qa | grep mariadb
rpm -eh 需要卸载的 mariadb 包
1.添加 MySQL 存储库
1.1 禁用 MySQL 默认的 AppStream存储库:
yum remove @mysql
yum module reset mysql -y && yum module disable mysql -y
1.2 创建一个新的存储库文件
### centos8没有MySQL存储库,因此我们将使用centos 7存储库
vim /etc/yum.repos.d/mysql-community.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=0
1.3 清理包缓存并重新加载
yum clean all
yum makecache
2.安装 Mysql
yum -y --enablerepo=mysql57-community install mysql-community-server
3.下载完成后检查是否安装成功
rpm -qi mysql-community-server
yum repolist enabled | grep mysql
4.启动 mysql
# systemctl start mysqld 启动
# systemctl enable mysqld 设置自启动
5.获取安装mysql后生成的临时密码,用于登录
grep 'temporary password' /var/log/mysqld.log
# 如下列信息,密码为: bV.6o7ROo
2024-05-13T17:18:26.765601Z 1 [Note] A temporary password is generated for root@localhost: BL=bV.6o7ROo
6.修改登录密码
6.1 登录 mysql(用上面的随机密码
mysql -uroot -p
6.2 降低密码验证的风险难度(根据自己需求更改
mysql> set global validate_password_policy=0;
## 关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6.3 修改密码最小长度(根据自己需求更改
mysql> set global validate_password_length=6;
6.4 修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
(修改后的密码,注意默认必须包含大小写字母数字以及特殊字符并且长度不能少于8位,否则会报错)
或者通过:
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
或者通过:
mysql> use mysql;
mysql> update user set password=PASSWORD('MyNewPass5!') where user='root';
mysql> flush privileges;
6.5 查看密码验证相关配置
mysql> show variables like 'validate_password%';
## PS: 如果未修改临时密码执行此命令,会报错 "ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement"
7.添加远程登录用户(即本机访问服务器上的MySQL)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zhangsan(用户名)'@'%' IDENTIFIED BY 'Zhangsan2018!(密码)' WITH GRANT OPTION;
# 或者直接将root权限修改为可以通过远程访问(但不推荐)
mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';
mysql> flush privileges;
8.设置默认编码为utf-8(mysql安装后默认不支持中文)
vim /etc/my.cnf
# 进入文件后添加下面的配置即可
[mysqld] character-set-server=utf8
[client] default-character-set=utf8
[mysql] default-character-set=utf8
9.重启 MySQL 服务并进入 MySQL
shell> systemctl restart mysqld
shell> mysql -uroot -p
# 查看 mysql 编码是否修改完成
mysql> show variables like 'character%';