ITPub博客

首页 > 数据库 > MySQL > 基于centos7的MySQL8.0二进制安装包的逻辑升级

基于centos7的MySQL8.0二进制安装包的逻辑升级

原创 MySQL 作者:龙山游龙 时间:2021-07-27 11:44:30 1 删除 编辑

升级数据库

逻辑升级涉及使用备份或导出实用程序从旧的MySQL 实例导出 SQL,安装新的 MySQL 服务器,并将 SQL 应用到您的新 MySQL 实例中。

1.1升级前准备

打开mysql官网下载页面: ,下载要升级的对应版本的数据库,并上传到指定目录。

检查你的升级路径,数据库升级不支持跳过版本的升级,例如,不支持直接从MySQL 5.5升级到8.0。建议先升级到最新版本,再升级到下一版本。支持在发行系列中进行升级。

检查你的配置文件,查看参数设置是否与新版本的数据库兼容。

1.2备份数据

从旧的 MySQL 安装导出您的现有数据

[root@mysql ~]# ./mysql80/app/bin/mysqldump -uroot -pAbcd321# -S /mysql/mysql80/product/data/mysql.sock --add-drop-table --routines --events --all-databases --force > /mysql/mysql80/data-for-upgrade.sql

1.3关闭旧的MySQL服务器

[root@mysql ~]# /mysql/mysql80/app/bin/mysqladmin -u root -p -S /mysql/mysql80/product/data/mysql.sock shutdown

1.4安装新的MySQL 

解压新的数据库到指定目录:

[root@mysql ~]# tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz -C /mysql/mysql801/app --strip-components=1

创建新的配置文件

[root@mysql ~]# mv /etc/my.cnf /etc/my.cnf.bak
[root@mysql ~]# vim /mysql/mysql801/app/my.cnf 
[mysqld]
user=mysql
port=33081
basedir=/mysql/mysql801/app
datadir=/mysql/mysql801/product/data
socket=/mysql/mysql801/product/data/mysql.sock
log_error=/mysql/mysql801/product/data/myerror.log
innodb_file_per_table=1
server_id=801
slow_query_log=1
log-bin=mysql-bin
binlog_format=ROW

实施过程中需要根据实际情况和需求自行添加和调整参数

初始化MySQL8.0:

[root@mysql ~]# cd /mysql/mysql801/app
[root@mysql app]# ./bin/mysqld --defaults-file=/mysql/mysql801/app/my.cnf --initialize 
[root@mysql ~]# tail /mysql/mysql801/product/data/myerror.log
2021-03-03T01:44:49.248365Z 1 [Note] A temporary password is generated for root@localhost: qdcf_Vl>k8LP

获取数据库初始登录临时密码:qdcf_Vl>k8LP

配置数据库服务:

[root@mysql ~]# cp /mysql/mysql801/app/support-files/mysql.server /etc/init.d/mysqld801
[root@mysql ~]# vi /etc/init.d/mysqld801
basedir=/mysql/mysql801/app
datadir=/mysql/mysql801/product/data

启动数据库:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --defaults-file=/mysql/mysql801/app/my.cnf --user=mysql &

修改root用户密码:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -uroot -p"qdcf_Vl>k8LP" -S /mysql/mysql801/product/data/mysql.sock password "Abcd321#"
[root@mysql ~]# mysql -uroot -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock

1.5恢复数据到新数据库

[root@mysql ~]# mysql -uroot -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock --force < /mysql/mysql80/data-for-upgrade.sql

1.6升级数据库

在 MySQL 8.0.16 及更高版中,关闭服务器,然后通过--upgrade=FORCE选项重新启动服务器以执行剩余的升级任务:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -u root -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock shutdown
[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --user=mysql --datadir=/mysql/mysql801/product/data/ --upgrade=FORCE &

在 MySQL 8.0.16 之前,执行mysql_upgrade以执行剩余的升级任务:

[root@mysql ~]# /mysql/mysql801/app/bin/mysql_upgrade -u root -p -S /mysql/mysql801/product/data/mysql.sock
[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -u root -p shutdown
[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --user=mysql --defaults-file=/mysql/mysql801/app/my.cnf &


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30310891/viewspace-2783508/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有超过9年以上的MySQL/Oracle数据库领域从业经验,TB级高并发数据库的管理经验。对于MySQL/Oracle内部原理、体系结构,数据页/块结构原理有着深刻认识;对于MySQL/ORACLE新特性、分布式高可用架构和性能调优有着丰富的的实战经验。擅长故障诊断以及数据库异常打开及数据灾难挽救。

注册时间:2015-06-28

  • 博文量
    78
  • 访问量
    109784