0
点赞
收藏
分享

微信扫一扫

MySQL数据库升级

什么是MySQL数据库升级

当前不少系统的数据库依旧是MySQL5.6,由于MySQL5. 7 及MySQL8. 0 在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5. 7 的方法,并介绍其使用场景。

✍逻辑方式升级

逻辑方式升级其实就是通过逻辑备份工具(例如mysqldump工具)将数据库、表、其他相关对象及数据逻辑备份成SQL脚本,再将其还原至MySQL5. 7 的实例中。

推荐步骤:

 在Centos01安装Mysql 5.6版本的Mysql数据库,启动服务设置登录密码,登录mysql数据库创建xsh数据库,表名字为自己名字全拼,设置两列数据分别使用name和id列,id列为主键,表中插入数据记录

 在Centos01安装Mysql5.7版本数据库,将5.6升级到5.7版本

 在Centos01安装Mysql8.0版本数据库,将5.7升级到8.0版本数据库

实验步骤:

创建管理Mysql用户和组

[root@centos ~]# groupadd mysql

[root@centos ~]# useradd -M -s /sbin/nologin -g mysql mysql

上传mysql不同版本


MySQL数据库升级_mysql

解压mysql安装到指定位置

[root@centos06 ~]# tar zxf ./mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz -C /usr/src/

[root@centos06 ~]# mv /usr/src/mysql-5.6.46-linux-glibc2.12-x86_64/ /usr/local/mys

Ql

生成服务配置文件

[root@centos06 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@centos06 ~]# chmod +x /etc/init.d/mysqld

[root@centos01 ~]# chkconfig --add mysqld

[root@centos01 ~]# chkconfig --level 35 mysqld on

修改Mysql主配值文件

[root@centos06 ~]# vim /etc/my.cnf


[mysqld]

user=mysql

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/

socket=/tmp/mysql.sock

port=3306

[mysql]

socket=/tmp/mysql.sock

修改Mysql数据库所有者

[root@centos06 ~]# chown mysql:mysql /etc/my.cnf

[root@centos06 ~]# chown -R mysql:mysql /usr/local/mysql/

优化命令

[root@centos06 ~]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile

[root@centos06 ~]# source /etc/profile

初始化mysql启动服务

MySQL数据库升级_centos_02

[root@centos06 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

[root@centos06 ~]# systemctl start mysqld

设置密码

[root@centos06 ~]# mysqladmin -uroot password

进入数据库

[root@centos06 ~]# mysql -uroot -ppwd@123

创建数据设计表插入数据

mysql> create database benet;

mysql> create table benet.student(name char(6),id char(18),primary key(id));

mysql> desc benet.student;

MySQL数据库升级_centos_03

mysql> insert into benet.student values ('bob','1111111111111111');


mysql> select * from benet.student;

MySQL数据库升级_mysql_04

停止老板数据库 从mysql5.6.升级到mysql5.7

[root@centos06 ~]# /usr/local/mysql/bin/mysqladmin -uroot -ppwd@123 -S /tmp/mysql.sock shutdow

配份老版本数据库数据

[root@centos06 ~]# cp -r /usr/local/mysql/data/ /usr/local/mysql_back

修改Mysql主配值文件

[root@centos06 ~]# vim /etc/my.cnf

[mysqld]

user=mysql

basedir=/usr/local/mysql5.7/

datadir=/usr/local/mysql/data/

socket=/tmp/mysql3307.sock

port=3307

[mysql]

socket=/tmp/mysql3307.sock

解压5.7

 [root@centos06 ~]# tar zxf ./mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/src/

创建mysql5.7修改用户所有者

[root@centos06 ~]# mv /usr/src//mysql-5.7.30-linux-glibc2.12-x86_64/ /usr/local/mysql5.7

[root@centos06 ~]# chown -R mysql:mysql /usr/local/mysql5.7

配置高版本数据库挂载低版本数据

[root@centos06 ~]# /usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &

MySQL数据库升级_centos_05

启动高版本Mysql

[root@centos06 ~]# /usr/local/mysql5.7/support-files/mysql.server start

MySQL数据库升级_mysql_06

低版本Mysql升级到高版本Mysql

[root@centos06 ~]# /usr/local/mysql5.7/bin/mysql_upgrade -uroot -ppwd@123 -S /tmp/mysql3307.sock --force

MySQL数据库升级_mysql_07

登录新版本Mysql查看数据

[root@centos06 ~]# /usr/local/mysql5.7/bin/mysql -uroot -ppwd@123 -S /tmp/mysql3307.sock

MySQL数据库升级_mysql_08

删除yum源

 [root@centos06 ~]# rm -rf /etc/yum.repos.d/CentOS-*

  安装依赖程序

[root@centos06 ~]# yum -y install libyaml

MySQL数据库升级_mysql_09

上传mysql-shellx8.6_64

MySQL数据库升级_mysql_10

安装环境检查工具

[root@centos06 ~]# rpm -ivh ./mysql-shell-8.0.32-1.el7.x86_64.rpm

MySQL数据库升级_centos_11

停止Mysql 5.7服务

[root@centos06 ~]# /usr/local/mysql5.7/bin/mysql -uroot -ppwd@123 -S /tmp/mysql3307.sock



MySQL数据库升级_centos_12

mysql> set global innodb_fast_shutdown=0;

 mysql> select @@innodb_fast_shutdown;

MySQL数据库升级_centos_13

mysql> shutdown;

修改Mysql主配值文件

[root@centos06 ~]# vim /etc/my.cnf

[mysqld]

user=mysql

basedir=/usr/local/mysql8.0/

datadir=/usr/local/mysql/data/

socket=/tmp/mysql3308.sock

port=3308

[mysql]

socket=/tmp/mysql3308.sock

[root@centos06 ~]# netstat -anptu | grep mysqld

[root@centos06 ~]# tar zxf ./mysql-8.0.32-el7-x86_64.tar.gz -C /usr/src/

[root@centos06 ~]# mv /usr/src/mysql-8.0.32-el7-x86_64/ /usr/local/mysql8.0

加载老版本Mysql数据库

[root@centos06 ~]#  /usr/local/mysql8.0/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &

MySQL数据库升级_centos_14

 [root@centos06 ~]# /usr/local/mysql8.0/bin/mysql -uroot -ppwd@123 -S /tmp/mysql3308.sock

MySQL数据库升级_centos_15

MySQL数据库升级_centos_16


举报

相关推荐

0 条评论