MySQL5.5.x 升级到 5.6.49

MySQL 升级到 5.6.49

1. 准备

PS : 已 SAG 项目为例:安装目录是 /usr/local

  • 本文档适用的 MySQL 版本:5.5.x

 1.1 基本准备

附件: MySQL-5.6.49


## 进入主目录 (这里以/usr/local为例)
cd /usr/local


## 备份数据库 -u 账号 -p密码 -B 数据库(多个空格分隔)
/usr/local/mysql/bin/mysqldump -h localhost -u sortec -p'xxxxx' -B sag > /home/sag_data_bak.sql
## 停止服务 
service mysqld stop
## 查看mysql进程,如果还有msyql进程则杀掉
ps -ef|grep mysql

## 备份目录
mv mysql mysql.bak

### 上传mysql压缩包到主目录
## 解压文件
tar -xzvf mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz
## 修改文件名为msyql
mv mysql-5.6.49-linux-glibc2.12-x86_64 mysql

## 授权为mysql访问
chown -R mysql:mysql mysql
## 进入msyql新版本目录
cd mysql


2. 升级

PS : 下面文档中 xxxx 代表密码

  • 初始化默认数据库运行此命令:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

出现错误:

FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper

解决方法 :安装 autoconf 库
命令:yum -y install autoconf // 此包安装时会安装 Data:Dumper 模块

  • 启动 mysql
service mysqld start
  • 进入 mysql
# 默认没有密码
/usr/local/mysql/bin/mysql -uroot -p
  • 修改 root 默认密码
use mysql;
UPDATE user SET Password = password ( 'xxxxx' ) WHERE User = 'root' ;
flush privileges;
  • 用户信息导入 (xxxxx 代表密码)
GRANT ALL PRIVILEGES ON *.* TO sortec@'%' IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO sortec@localhost IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;
GRANT SELECT ON *.* TO sag@'%' IDENTIFIED BY 'xxxxx';
GRANT SELECT ON *.* TO sag@localhost;
delete from mysql.user where user='';
flush privileges;
  • 导入数据 使用 sortec 用户导入数据 /usr/local/mysql/bin/mysql -u sortec -p'xxxxx'
source /home/sag_data_bak.sql

3. 还原

PS : 还原的时候注意还原成之前的版本号,下面是还原成 mysql-5.5.41 的示例

## 停止mysql服务
service mysqld stop
## 进入安装目录
cd /usr/local
## 查看软连接信息(方便还原使用)
ll |grep mysql

## 还原mysql 
mv mysql mysql-5.6.49-linux-glibc2.12-x86_64
mv mysql.bak mysql

##启动mysql
service mysqld start