CentOS6--升级MySQL(5→8)

环境:

         CentOS release 6.5

         mysql-5.7.27

背景:

         客户某次服务器环境安全扫描后,发现Oracle MySQL Server安全漏洞CVE-2019-5443和Oracle MySQL Server组件安全漏洞CVE-2019-5482。安检公司给出的建议是打补丁,但为防止后续仍然有其他漏洞出现决定直接把原MySQL进行升级。

目的:

         通过将MySQL升级到8.0.22来解决上述漏洞。

操作:

         一、卸载原数据库

                查看原库版本:(安装完成后才整理的文档,忘记截图了,所以这里看到的都是最终的版本信息)

[root@localhost ~]# mysql -V
mysql  Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)

或

[root@localhost ~]# mysql -uroot -p
Enter password: 

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.22    |
+-----------+
1 row in set (0.00 sec)

                备份数据:先查出自己的库,再进行备份操作(zhaosheng库)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| zhaosheng          |
+--------------------+
5 rows in set (0.00 sec)



[root@localhost bin]# mysqldump -h 127.0.0.1 -u root -B -p zhaosheng > /opt/zhaosheng.bak   #将招生库的数据备份成/opt目录下的zhaosheng.bak文件

                卸载旧版库:​​​​​​

//rpm包安装方式卸载

查包名:rpm -qa|grep -i mysql

删除命令:rpm -e --nodeps 包名



//yum安装方式下载
1.查看已安装的mysql
命令:rpm -qa | grep -i mysql
2.卸载mysql
命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64
查看mysql的其它依赖:rpm -qa | grep -i mysql
 
//卸载依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysql

         二、安装新版数据库

                官网下载安装包

官网下载链接:https://dev.mysql.com/downloads/mysql/

复制download按钮的链接地址,用wget进行下载:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

移动文件到/usr/local/mysql下解压(原文件夹内文件都可以删除)

                安装

# cd /usr/local/mysql

# tar -xvJf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

# mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql8.0    #重命名

# cd mysql8.0 

# mkdir data   #创建文件存储目录

# groupadd mysql   #创建用户组

# useradd -g mysql mysql #创建用户(用户和密码)

# chown -R mysql.mysql /usr/local/mysql8.0/  #授权

# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize   #初始化数据库记得存储好临时密码

# vi /etc/my.cnf  #修改配置信息(mysql-safe可先行注释)
[mysqld]
basedir=/usr/local/mysql8.0
datadir=/usr/local/mysql8.0/data
socket=/tmp/mysql.sock
character-set-server=utf8

# cp -a ./support-files/mysql.server /etc/init.d/mysql   #监理MySQL服务

# chmod +x /etc/init.d/mysql

# chkconfig --add mysql

# chkconfig --list mysql   #检查服务是否生效

# ln -s /usr/local/mysql/mysql8.0/bin/mysql /usr/bin   #建立启动软链接

# service mysql start   #启动数据库

# mysql -uroot -p   #登录MySQL,输入上面记住的临时密码

# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';   #修改root密码

# create schema [数据库名称] default character set utf8 collate utf8_general_ci; #创建库

# create user '[用户名称]'@'%' identified by '[用户密码]'; #创建用户并允许远程访问

# GRANT ALL PRIVILEGES on [数据库名称].* to [用户名称];

# ALTER USER '[用户名称]'@'%' IDENTIFIED BY '[用户密码]' PASSWORD EXPIRE NEVER; #修改加密规则 

# ALTER USER '[用户名称]'@'%' IDENTIFIED WITH mysql_native_password BY '[用户密码]'; #更新一下用户的密码,不做这步可能现有的比如navicat会连接报错(1251- Client does not support authentication protocol)

# FLUSH PRIVILEGES; #刷新权限,立即生效


        三、恢复备份

# mysql -uroot -p

mysql > source /opt/zhaosheng.bak

注意:升级后项目配置连接文件和驱动程序可能需要对应修改,如:pom.xml中修改mysql版本,yml文件中的DataSource属性的修改。

最后,连接数据库,瞅瞅数据没问题,收工!

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值