MySQL的升级迁移

MySQL的升级迁移

欢迎来到 来到大浪涛天的博客

一、MySQL 从5.6到5.7的升级迁移

1. 搭建5.6的测试环境

1-1. 创建必须的目录

mkdir /data/mysql/data  -p 
mkdir /application/ -p
mkdir /data/binlog -p
上传软件至 /application 下并解压

1-2. 建用户,改权限

useradd mysql
chown -R mysql. /data /application/

1-3. 修改环境变量

vim /etc/profile
export PATH=/application/mysql/bin:$PATH
source /etc/profile

1-4. 数据初始化

yum remove mariadb-libs
yum install -y libaio-devel

m -rf /data/mysql/data/*
/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

1-5. 准备配置文件和启动脚本

cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/application/mysql 
datadir=/data/mysql/data 
server_id=99
user=mysql
log_bin=/data/binlog/mysql-bin
binlog_format=row
socket=/tmp/mysql.sock 
[mysql]
socket=/tmp/mysql.sock
EOF

1-6. 拷贝启动脚本

cp  /application/mysql/support-files/mysql.server /etc/init.d/mysqld

1-7. 启动数据库

/etc/init.d/mysqld start
mysqladmin -uroot -p password 123

2. 5.6数据库的数据备份,并在5.7恢复数据

2-1. 备份并推送数据

mysqldump -uroot -p123 -A --master-data=2 --single-transaction -R -E --triggers >/tmp/full.sql
scp /tmp/full.sql 10.0.0.51:/data/3308 

2-2. 准备5.7数据库

systemctl start mysqld3308
mysql -S /data/3308/mysql.sock
source /data/3308/full.sql
mysql_upgrade  -uroot -p123 -S /data/3308/mysql.sock

2-3. 停业务,截取剩余的二进制日志

show master status

根据备份确认起点的位置,备份的结束点就是二进制日志恢复的起点,比如:
SET @@GLOBAL.GTID_PURGED='9f5d3fcf-e215-11ea-9d2c-001c42063d8f:1-14';

再根据二进制日志确认数据更新的结束点。
show binlog events in ''

mysqlbinlog --skip-gtids --include-gtids='9f5d3fcf-e215-11ea-9d2c-001c42063d8f:14-18' mysql-bin.000001 >/tmp/binlog.sql

scp /tmp/binlog.sql 10.0.0.51:/data/3308 

2-4. 恢复剩余的二进制日志并业务上线

set sql_log_bin=0
source /data/3308/binlog.sql
set sql_log_bin=1
原文地址:https://www.cnblogs.com/chacha51/p/13781377.html