或者看这篇: https://cloud.tencent.com/developer/article/1531789 或者这篇: https://blog.csdn.net/cgtcsdn/article/details/117740579#:~:text=1.%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85%E5%8C%85%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E5%AE%89%E8%A3%85wget%EF%BC%8C%E8%AF%B7%E5%AE%89%E8%A3%85%EF%BC%8C%E6%AD%A5%E9%AA%A4%E7%95%A5%20wget%20https%3A%2F%2Fdev.mysql.com%2Fget%2Fmysql57-community-release-el7-11.noarch.rpm%201%202.%E5%AE%89%E8%A3%85MySQL%E6%BA%90%20yum%20-y,localinstall%20mysql57-community-release-el7-11.noarch.rpm%201%203.%E5%AE%89%E8%A3%85MySQL%EF%BC%88%E6%97%B6%E9%97%B4%E7%95%A5%E9%95%BF%EF%BC%8C%E5%8F%96%E5%86%B3%E4%BA%8E%E7%BD%91%E9%80%9F%E5%8F%8A%E7%A1%AC%E4%BB%B6%E9%85%8D%E7%BD%AE%EF%BC%89%20yum%20-y%20install%20mysql-community-server

实验环境:

CentOS7保持网络畅通

【1】 查看是否已经安装 Mysql

rpm -qa | grep mysql

下面是我的操作,可见并没有安装 Mysql,那么直接进入【2】,

若存在mysql,请自行搜索彻底删除mysql。

【2】 下载官方 Mysql 包

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

【3】 安装 Mysql 包

yum -y install mysql57-community-release-el7-10.noarch.rpm

【4】 安装 Mysql 静等安装

yum -y install mysql-community-server

如果执行命令过程中提示:Unable to find a match: mysql-community-server 可以通过命令解决

yum module disable mysql

【5】 启动 Mysql 服务

systemctl start  mysqld.service

如果没有报错,进入【6】,

如果执行报错,多半是没有权限,执行下面语句赋予权限,然后重试。

chown mysql:mysql -R /var/lib/mysql

【6】 查看 Mysql 运行状态

systemctl status mysqld 

修改和安全策略

获取临时密码

grep "password" /var/log/mysqld.log

登陆并修改密码

mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

查看安全策略并修改

# 获取临时密码
grep "password" /var/log/mysqld.log
# 登陆并修改密码
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

# 查看安全策略并修改
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
set global validate_password.length=1;

切换数据库

# 切换数据库
use mysql;
update mysql.user set host = '%' where user = 'root';

FLUSH PRIVILEGES;

MySql 8.0版本修改了默认的加密规则,用Navicat连接会报错,解决办法为执行如下语句

#'root'@'%' 中root为用户名,'%'为user表host字段的值。'pasword'为用户密码。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pasword';

配置防火墙

# 检查状态 
systemctl status firewalld.service 
# 其余还有 开始,重启等
systemctl start firewalld.service
systemctl restart firewalld.service

# 开机自启动
systemctl enable firewalld.service

#配置防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --query-port=3306/tcp # 检查是否ok