MySQL升级小版本需要备份吗,mysql 8.0的小版本升级 基于二进制包安装

1.思路:

小版本的升级替换思路,一种是直接删除原本在系统上的mysql程序,但是要保留/etc/my.cnf(或其他指定的配置路径如:/etc/mysql/my.cnf),还有最重要的就是data目录,这个目录包含着mysql的初始化的一些数据还有数据库数据,保留了数据,那么更新后不需要重新导入数据,不需要执行initialize操作。第二种思路就是逻辑备份,首先使用mysqldump导出数据库文件,然后删除所以mysql相关文件以及程序,当然配置文件是需要备份的(说到备份,必然是操作前所有的东西都已经做好了相关的备份,以防止删库跑路的尴尬),最后进行数据恢复。

注意:mysql大版本的升级是不能这样的,会造成一些问题,并且mysql官方也是表明了,版本的升级与降级,低版本可以升级到可升级的中间版本然后再升级到高版本。意思很明显,就是需要一步步更新,那么这种繁琐的更新肯定是适合哪种业务复杂或者是陈年老酒没办法才这么干,要不然,肯定是还是逻辑备份省事。官方推荐升级方式:https://dev.mysql.com/doc/refman/8.0/en/upgrading.html (5.7: https://dev.mysql.com/doc/refman/8.0/en/upgrading.html )。

2.备份方式:

全备份:mysqldump --all-databases --single-transaction --user=xxx -p > x.sql

增量备份:mysqldump --all-databases --single-transaction --flush-logs --user=xxx -p > x.sql

注意:--single-transaction 是对具有事务引擎的表如innodb,对于非事务的MyISAM的不起作用。--flush-logs的增量备份的恢复需要依靠binlog。

3.暴力升级方式:(删除mysql程序,只留下配置文件与data目录的数据)

升级之前的启动日志:2020-12-11T09:19:32.153747Z 0 [System] [MY-013169] [Server] /mysql-files/bin/mysqld (mysqld 8.0.12) initializing of server in progress as process 125

2020-12-11T09:19:35.264450Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: E=&ty(9:

2020-12-11T09:19:36.801017Z 0 [System] [MY-013170] [Server] /mysql-files/bin/mysqld (mysqld 8.0.12) initializing of server has completed

2020-12-14T01:31:19.605541Z 0 [System] [MY-010116] [Server] /mysql-files/bin/mysqld (mysqld 8.0.12) starting as process 175

2020-12-14T01:31:20.408045Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.

2020-12-14T01:31:20.439742Z 0 [System] [MY-010931] [Server] /mysql-files/bin/mysqld: ready for connections. Version: '8.0.12'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.

2020-12-14T02:12:00.670471Z 0 [System] [MY-013169] [Server] /mysql-files/bin/mysqld (mysqld 8.0.12) initializing of server in progress as process 381

进入控制修改用户密码: alter user root@localhost identified by 'root';

干掉mysql进程,删掉所以的文件,只留下data目录,与配置文件。重新安装,新版本,然后指定好配置文件与data目录,直接启动。

2020-12-14T03:10:06.487435Z 0 [System] [MY-010910] [Server] /mysql-files/bin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

2020-12-14T03:41:09.504455Z 0 [System] [MY-010116] [Server] /mysql-files2/bin/mysqld (mysqld 8.0.20) starting as process 1118

2020-12-14T03:41:09.538566Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.

2020-12-14T03:41:09.751460Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.

2020-12-14T03:41:09.772604Z 1 [System] [MY-011090] [Server] Data dictionary upgrading from version '80012' to '80017'.

2020-12-14T03:41:10.455284Z 1 [System] [MY-013413] [Server] Data dictionary upgrade from version '80012' to '80017' completed.

2020-12-14T03:41:10.640993Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060

2020-12-14T03:41:12.003175Z 4 [System] [MY-013381] [Server] Server upgrade from '80012' to '80020' started.

2020-12-14T03:41:17.011161Z 4 [System] [MY-013381] [Server] Server upgrade from '80012' to '80020' completed.

2020-12-14T03:41:17.128662Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.

2020-12-14T03:41:17.165420Z 0 [System] [MY-010931] [Server] /mysql-files2/bin/mysqld: ready for connections. Version: '8.0.20'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.

从日志上可以看出来为什么官方说升级要小版本升级到中间版本再升级到高版本,如5.6->5.7->8.0。升级会有一个叫做数据字典的升级,与server的升级。具体的版本升级请见官方文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是在 Linux 系统下安装 MySQL 8.0 二进制文件的步骤: 1. 确认系统是否自带 MySQL:在终端输入 `mysql -V` 命令,如果系统已经安装MySQL,会显示 MySQL版本信息;如果没有安装,则会提示命令不存在。 2. 下载 MySQL 8.0二进制文件:可以在 MySQL 官网下载相应的二进制文件。 3. 解压压缩:使用 `tar -zxvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.gz` 命令解压压缩。 4. 创建 MySQL 用户和用户组:使用 `groupadd mysql` 命令创建 mysql 用户组,使用 `useradd -r -g mysql -s /bin/false mysql` 命令创建 mysql 用户。 5. 移动解压后的文件夹:使用 `mv mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql` 命令将解压后的文件夹移动至 /usr/local 目录下。 6. 修改文件夹权限:使用 `chown -R mysql:mysql /usr/local/mysql` 命令修改文件夹权限。 7. 初始化 MySQL:使用 `cd /usr/local/mysql` 命令进入 MySQL 目录,使用 `bin/mysqld --initialize --user=mysql` 命令初始化 MySQL。 8. 修改配置文件:将 MySQL 配置文件 my.cnf 复制到 /etc 目录下,并修改配置文件中的 bind-address 和 datadir 选项,分别设置 MySQL 监听的 IP 地址和数据存储路径。 9. 启动 MySQL:使用 `bin/mysqld_safe --user=mysql &` 命令启动 MySQL。 10. 设置 MySQL root 用户的密码:使用 `bin/mysql_secure_installation` 命令设置 MySQL root 用户的密码。 至此,MySQL 8.0二进制安装已完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值