MySQL02-升级

news/2024/7/7 18:48:30

MySQL 版本号由三个数字和可选后缀组成,形式 mysql-x.y.z-suffix。比如 mysql-5.7.21 或者 mysql-5.7.34。

  • x(5)这位是大版本
  • y(7)这位是小版本,大版本小版本组合成 5.7 就是一个发行版
  • 最后一位是bugfix release版本,从1逐渐增加,到21,到34,到更大
  • 可选后缀,有m1、m2、mN、rc等等,我们使用没有后缀的版本 GA (General Available)

MySQL升级有logical升级、in-place升级等方式。

一、logical 升级

适合不同操作系统的MySQL升级,大版本之间的升级。使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。

二、in-place升级

适合小版本的升级(5.7.21 -> 5.7.34)。即关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade。in-place升级不改变数据文件,升级速度快。但是,这不可以跨操作系统,不可以跨大版本(5.5 -> 5.7)。

我们把 MySQL01 那篇文章里面安装的 mysql-5.7.21 升级到 mysql-5.7.34。

创建测试数据,备份数据库

create database db1;
use db1;
create table t1 ( id int, name varchar(10), primary key (id) );
insert into t1 values(3, 'zhang3');
insert into t1 values(4, 'li4');
insert into t1 values(5, 'wang5');
select * from t1;
mysqldump -u root -p --all-databases > ./all.sql

 关闭数据库

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
mysqladmin -u root -p shutdown 
ps -ef | grep mysql

上传 mysql-5.7.34 二进制安装包,并解压缩。

cd /usr/local/
tar xvzf /data/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
tree /usr/local -L 1/usr/local
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── mysql -> /usr/local/mysql-5.7.21-linux-glibc2.12-x86_64/
├── mysql-5.7.21-linux-glibc2.12-x86_64
├── mysql-5.7.34-linux-glibc2.12-x86_64
├── sbin
├── share
└── src

修改目录权限为mysql,把软连接指向 mysql-5.7.34 目录。

chown -R mysql:mysql mysql-5.7.34-linux-glibc2.12-x86_64/
rm mysql
ln -s /usr/local/mysql-5.7.34-linux-glibc2.12-x86_64/ mysql
tree /usr/local/ -L 1/usr/local/
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── mysql -> /usr/local/mysql-5.7.34-linux-glibc2.12-x86_64/
├── mysql-5.7.21-linux-glibc2.12-x86_64
├── mysql-5.7.34-linux-glibc2.12-x86_64
├── sbin
├── share
└── src

启动数据库,登录数据库并验证。

service mysqld start
mysql -u root -p
use db1;
select * from t1;+----+--------+
| id | name   |
+----+--------+
|  3 | zhang3 |
|  4 | li4    |
|  5 | wang5  |
+----+--------+

检测兼容性

mysql_upgrade -uroot -p
Enter password: Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Found outdated sys schema version 1.5.1.
Upgrading the sys schema.
Checking databases.
db1.t1                                             OK
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.

重启数据库

service mysqld stop
service mysqld start


http://lihuaxi.xjx100.cn/news/235819.html

相关文章

小米:开源不仅要站在巨人的肩膀上,还要为巨人指方向

今天上午,第一届小米开源技术峰会在北京举行,会上,小米人工智能与云平台副总裁崔宝秋致开场词,并发表了《小米开源之路》的演讲。 崔宝秋强调小米一直在推动开源,也是开源的倡导者。他告诉我们雷军创立小米的其中一个重…

2021年中国工业互联网安全大赛核能行业赛道writeup之wifi破解近源攻击

附件题:wifi破解——近源攻击 题目描述: 近源攻击,在攻防演练期间,攻击队队员使用无人机悬停监听技术,成功抓取到了某核电办公网络的Wifi握手包,现在正在进行紧张的破解,你能破解该密码吗&…

《跟菜鸟学Cisco UC部署实战》-第 1 章 规划-课件(一共12章,免费)

链接:https://pan.baidu.com/s/1RiIphSUG5dsbPPqWaynHjQ 提取码:xjp9 复制这段内容后打开百度网盘手机App,操作更方便哦 《跟菜鸟学Cisco UC部署实战》-视频课程http://edu.51cto.com/course/10031.html 《Skype for Business Server 2015-企业外部-部署》视频课程http://ed…

计算两个时间的间隔时间是多少

/*** 计算两个时间间隔* param startTime 开始时间* param endTime 结束时间* param type 类型(1:相隔小时 2:)* return*/public static int compareTime(String startTime, String endTime, int type) {if (endTime nul…

2021年中国工业互联网安全大赛核能行业赛道writeup之日志分析

附件题:日志分析 题目描述: 核电站新来的运维小王粗心把一个办公网地址映射到外网,遭到大量攻击,你能从日志当中找到有效信息吗。 附件下载: 2021-10-12T15_37_51.61064600_00rizhifenxi.rar-网络攻防文档类资源-CSD…

js字符串如何倒序

1. var reverse function( str ){ var newStr , i str.length; for(; i > 0; i--) { newStr str.charAt(i); } return newStr; };reverse(abcde) 2. var reverse function( str ){ return str.split().reverse().join(); }; 3.(类似法2) var rev…

尼姆博奕

有三堆物品,两人轮流从某一堆任取若干(大于0),最后取光者获胜。 我们用(a,b,c)表示三堆的状态,其有三种奇异局势: (0,0,0)时,即无论谁面对(0,0,0)…

编译vim-8.2并配置jedi-vim插件

目录 一、背景 二、编译vim-8.2 三、配置jedi-vim插件 3.1、安装插件vundle 3.2、用vundle安装jedi-vim插件 一、背景 CentOS 7.9上已经安装了anaconda,python3.7的虚拟环境webenv。现在编译安装vim-8.2,使之支持python3(yum装包是不支…