MySQL扫描出安全漏洞.
解决办法:升级MySQL到5.7的最后一个版本
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
开始升级:
1、备份并删除原有的mysql包
复制代码
mysqldump -u root -p --all-databases >mysqlall.sql //先备份原有所有数据,防止数据丢失。
service mysql stop //停止mysql服务
service tomcat/nginx stop //停止tomca服务,防止在更新的时候有新数据进入丢失
yum remove mysql mysql-* //移除原有mysql服务
yum list installed | grep mysql //查看已经安装的mysql服务;如果有,可输入命令删除:yum remove mysql-libs
rpm -qa | grep -i mysql
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
rm /etc/my.cnf
2、备份数据库:mysqldump -uroot -p db >1.sql
#恢复:mysql -uroot -p db <1.sql
3、安装新的MySQL5.7.33:CentOS7二进制安装MySQL5.7_水煮胡萝卜的博客-CSDN博客
groupadd mysql
useradd -g mysql -s /sbin/nologin -M mysql
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/data
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
配置系统环境变量:
vim /etc/profile
#在文件的最后新起一行,插入:
export PATH=$PATH:/usr/local/mysql/bin
生效:
source /etc/profile
临时启动测试(如下表示已正常启动):
[root@localhost bin]# ./mysqld_safe
2020-12-10T07:27:11.165654Z mysqld_safe Logging to '/usr/local/mysql/data/mysqldb.localhost.err'.
2020-12-10T07:27:11.200006Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
...
杀掉进程:pkill mysql
重新打开一个终端杀掉进程再使用MySQL自带启动脚本启动测试(如下表示已正常启动):
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# ./mysql.server start
Starting MySQL. SUCCESS!
[root@localhost support-files]# ./mysql.server stop
设置MySQL使用systemctl服务:
[root@localhost mysql]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
Type=forking
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/usr/local/mysql/support-files/mysql.server restart
LimitNOFILE = 5000
[Install]
WantedBy=multi-user.target
启动和关闭测试:
systemctl daemon-reload
systemctl start mysqld.service
systemctl status mysqld.service
4、创建MySQL数据库并还原数据。
mysql -u root -p123123
create database dbtest;
#恢复:mysql -uroot -p dbtest <1.sql
还原所有库就执行:mysql -uroot -p <mysqlall.sql
最后重启MySQL。