mysql 就地升级_mysql数据库就地升级

1.注意事项:

生产环境一定注意:

1.升级之前,先备份,备份,备份(热冷备份都可以)

2.从5.6升级到8.0版本:

需要先5.6升级到最新版,再5.6最新升级到5.7最新版,然后5.7最新版升级到8.0版本

3.回退方案制定好,每升级一个版本进行备份一次,特别是升级到8.0(5.7升级到8.0无法就地回退)

4.升级过程中尽量降低业务影响时间

2.环境准备

系统:CentOS 7.5

IP: 10.0.1.52

hostname: db02-52

关闭防火墙-selinux-创建mysql用户-修改文件描述符

3.先安装mysql5.6.46版本

1.注意:

保证已经彻底删除原有mysql和mariadb及其配置文件和目录(百度一下你就知道)

2.数据库程序目录:/data/app/

数据库数据目录:/data/local/data

3.先解压mysql-5.6到/data/app目录下:

[root@db02-52 /data/app]# tar -xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

4.做软连接,修改/data目录属性:

[root@db02-52 /data/app]# ln -s mysql-5.6.46-linux-glibc2.12-x86_64 mysql-56

[root@db02-52 /data/app]# chown -R mysql.mysql /data/

5.初始化数据目录:

[root@db02-52 /data/app]# /data/app/mysql-56/scripts/mysql_install_db --user=mysql --basedir=/data/app/mysql-56 --datadir=/data/local/data

#初始化数据库之前,一定要保证数据目录/data/local/data目录下无任何数据

6.编辑启动配置文件my.cnf

cat > /etc/my.cnf <

[mysqld]

user=mysql

basedir=/data/app/mysql-56

datadir=/data/local/data

socket=/tmp/mysql.sock

port=3306

[mysql]

socket=/tmp/mysql.sock

EOF

7.启动数据库

[root@db02-52 /data/app]# /data/app/mysql-56/bin/mysqld &

8.检查服务是否启动

[root@db02-52 /data/app]# netstat -tunlp

tcp6 0 0 :::3306 :::* LISTEN 6977/mysqld

#3306端口起来后登陆测试

[root@db02-52 /data/app]# /data/app/mysql-56/bin/mysql

#能够登陆到mysql则表示安装完成

4.5.6升级数据库到5.7最新版本

mysql-5.6.46已经是最新,所以不用升级5.6最新,直接升级到5.7最新

1.解压mysq-5.7.28到/data/app/目录下

[root@db02-52 /data/app]# tar -xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

2.创建软连接,修改/data目录属性

[root@db02-52 /data/app]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql-57

[root@db02-52 /data/app]# chown -R mysql.mysql /data/

3.修改/etc/my.cnf配置文件,让数据库快速关闭

cat > /etc/my.cnf <

[mysqld]

user=mysql

basedir=/data/app/mysql-56

datadir=/data/local/data

socket=/tmp/mysql.sock

innodb_fast_shutdown=0

#快速停止数据库主要参数

port=3306

[mysql]

socket=/tmp/mysql.sock

EOF

4.停止mysql-5.6数据库

[root@db02-52 /data/app]# /data/app/mysql-56/bin/mysqladmin shutdown

5.备份5.6数据库数据目录

[root@db02-52 /data/app]# cp -a /data/local/data /data/local/data-56.bak

6.编辑5.7数据库启动配置文件,修改权限

cat > /data/local/my.cnf <

[mysqld]

user=mysql

basedir=/data/app/mysql-57

datadir=/data/local/data

socket=/tmp/mysql.sock

innodb_fast_shutdown=0

port=3306

[mysql]

socket=/tmp/mysql.57.sock

EOF

[root@db02-52 /data/app]# chown mysql.mysql /data/local/my.cnf

7.用5.7数据库调用5.6数据目录文件启动

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysqld_safe --defaults-file=/data/local/my.cnf --skip-grant-tables --skip-networking &

8.升级5.6数据库数据为5.7版本兼容

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysql_upgrade --force

#全部OK则表示成功

9.重启数据库到正常状态

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysql -e "shutdown;"

#关闭数据库

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysqld_safe --defaults-file=/data/local/my.cnf &

#启动

10.查看是否升级完成

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysql -e "show databases;"

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

| test |

+--------------------+

#sys库存在则表示升级完成,mysql-5.6没有sys库

5.5.7最新版本升级至8.0版

1.解压8.0数据库

[root@db02-52 /data/app]# tar -xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

2.创建软连接,修改授权

[root@db02-52 /data/app]# ln -s mysql-8.0.18-linux-glibc2.12-x86_64 mysql-80

[root@db02-52 /data/app]# chown -R mysql.mysql /data

3.停止5.6数据库

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysql -e "shutdown;"

4.备份5.7数据库数据目录

[root@db02-52 /data/app]# cp -r /data/local/data /data/local/data-57.bak

5.编辑8.0数据库启动配置文件

cat >/etc/my.cnf <

[mysqld]

user=mysql

basedir=/data/app/mysql-80

datadir=/data/local/data

socket=/tmp/mysql.sock

innodb_fast_shutdown=0

port=3306

[mysql]

socket=/tmp/mysql.sock

EOF

6.用8.0数据库启动5.7数据库数据

[root@db02-52 /data/app]# /data/app/mysql-80/bin/mysqld &

7.测试数据库是否能正常登录

[root@db02-52 /data/app]# /data/app/mysql-80/bin/mysql

或者

[root@db02-52 /data/app]# /data/app/mysql-57/bin/mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 8.0.18 MySQL Community Server - GPL

#此时不管用5.7登录还是8.0登录,显示都是8.0版本.则升级完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值