亲测:CentOS7安装MySQL5.7.39成功经验

1.检查是否有安装过mysql rpm -qa | grep mysql
2.如果有安装过则删除掉mysql的文件(见9)
3.下载mysql的repo源,例如:wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
【如果没有安装wget需要安装一下,yum -y install wget】
4.安装
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
安装mysql-community-server时提示公钥尚未安装
方法一,运行这个命令:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
方法二,修改文件:/etc/yum.repos.d/mysql-community.repo,修改对应安装版本的gpgcheck=0即可
5.启动服务
启动mysql服务:systemctl start mysqld.service
查看是否启动mysql服务:systemctl status mysqld.service
6.修改密码
查看mysql初始密码:grep "password" /var/log/mysqld.log
进入mysql:mysql -u root -p
修改密码:alter user user() identified by "newPassword"
如果提示密码强度过低
set global validate_password_policy=0; # 密码强度设为最低等级
set global validate_password_length=4; # 密码允许最小长度为4,也可以是1
flush privileges; # 更新授权表,生效
7.设置防火墙
关闭防火墙:systemctl stop firewalld
查看防火墙是否关闭:systemctl status firewalld
禁用防火墙:systemctl disable firewalld
查看Linux是否安装iptables:systemctl status iptables.service
【如未安装执行:yum install -y iptables】
【安装iptables-service: yum -y install iptables-services】
修改文件:sudo vi /etc/sysconfig/iptables
不要将如下语句添加到文件末尾,应该添加到22端口这条规则的下面
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # 仅安装mysql,这条不必执行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存配置:service iptables save【保存配置时显示OK则是成功的,警告说明配置有误】
重启防火墙:systemctl restart iptables.service
设置开机启动:systemctl enable iptables.service
8.修改允许的连接人
最后进入mysql配置远程访问权限(远程登录的用户名为root,密码为"root")
控制台执行语句1: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
控制台执行语句2: FLUSH PRIVILEGES;
如果提示密码强度低
set global validate_password_policy=0 # 密码强度设为最低等级
set global validate_password_length=4 # 密码允许最小长度为4,也可以是1
flush privileges; # 更新授权表,生效
9.彻底删除mysql(未测试)
yum安装
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
rpm安装
rpm -qa | grep mysql
使用rpm -e命令将上个命令中包列表全部删除
然后删除相关服务
chkconfig --list | grep -i mysql
chkconfig --del mysql
最后找出OS中分散的mysql文件夹,并删除
find / -name mysql