转载 草莓甜甜圈 https://blog.csdn.net/qq_39626154/article/details/84836173
一、配置介绍
因为线上环境yum安装的MySQL数据库版本过低,已经无法满足现有的开发需求,所以要进行版本升级。
系统环境:CentOS6.8
配置步骤:
1.备份数据及配置文件
2.停用旧版本数据库并执行卸载
3.安装新版本的数据库
4.修改数据库登录密码
5.导入备份数据
二、备份数据和配置文件
执行mysqldump对原有数据库的数据导出为sql文件:
mysqldump -uroot -p --all-databases > /data/mysql_backup.sql
复制保存原有数据库配置:
cp /etc/my.cnf /etc/my.cnf.bak
三、停用并卸载数据库
执行停用数据库命令:
service mysqld stop
查询数据库安装情况:
rpm -qa |grep -i mysql
执行卸载命令:
rpm -qa | grep -i mysql | xargs rpm -ev --nodeps
四、下载并安装新版本数据库
官方下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
选择系统对应版本:
wget进行下载或下载到本地再上传至服务器:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar
对下载得到的tar包进行解压:
tar xf mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar
解压得到一堆的rpm安装包,但是我们一般只需要安装client和server就够了。
安装有严格的依赖关系,按照顺序执行安装:
rpm -ivh mysql-community-common-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el6.x86_64.rpm
执行时发现遇到报错:
warning: mysql-community-server-5.7.24-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
解决办法——执行安装numactl命令,再去执行安装server:
yum -y install numactl
六、初始化数据库
将原先的配置文件复制回去:
cp /etc/my.cnf.bak /etc/my.cnf
执行初始化命令:
mysqld --initialize --user=mysql
执行之后会给mysqlroot用户一个初始化的密码,可以通过vim /var/log/mysqld.log到日志中看初始密码:
启动mysql服务:
service mysqld start
启动mysql数据库,之后就可以登录了:
mysql -u root -p #输入自动生成的初始密码
登入数据库时报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决办法,修改root密码:
mysql> alter user ‘root’@‘主机地址’ identified by ‘密码’;
mysql> flush privileges;
七、导入数据
执行导入数据命令:
mysql> source /data/mysql_backup.sql;
执行数据结构升级命令:
mysql_upgrade -u root -p
八、账户权限设置
想让root在其他客户端也能管理数据库:
执行 : GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘mypassword’ WITH
GRANT OPTION;
然后 执行:flush privileges;