日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql5.1.7升级到5.6_1 MySQL5.6 升级到 5.7 版本

發(fā)布時(shí)間:2025/3/17 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.1.7升级到5.6_1 MySQL5.6 升级到 5.7 版本 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 MySQL5.6 升級(jí)到 5.7 版本

目前未在生產(chǎn)環(huán)境中升級(jí)過(guò)數(shù)據(jù)庫(kù)版本, 倒是在測(cè)試環(huán)境跟開(kāi)發(fā)環(huán)境升級(jí)過(guò)

可以通過(guò) mysqldump sql 文件進(jìn)行升級(jí), 也可以通過(guò) mysql_upgrade 升級(jí), 前者耗時(shí)較長(zhǎng), 且需要足夠量的磁盤空間, 本文暫不討論, 升級(jí)使用 mysql_upgrade 方式

如果是線上環(huán)境升級(jí), 常規(guī)來(lái)說(shuō)分為以下幾個(gè)步驟:

從庫(kù)先升級(jí)

業(yè)務(wù)遷移, 從庫(kù)上若有只讀業(yè)務(wù)或者其他, 遷移到其他 DB 實(shí)例

從庫(kù)備份

從庫(kù)停止復(fù)制

升級(jí)

從庫(kù)恢復(fù)復(fù)制 (升級(jí)后主庫(kù)仍是 5.6 版本, 從庫(kù)是 5.7 版本, 注意是否有異常)

主從恢復(fù)正常

主從切換

新從庫(kù)升級(jí)

新從庫(kù)停止復(fù)制

新從庫(kù)備份

升級(jí)

新從庫(kù)恢復(fù)復(fù)制

主從恢復(fù)正常

恢復(fù)相關(guān)業(yè)務(wù)

本文主要記錄升級(jí)的詳細(xì)步驟主庫(kù) 5.6 從庫(kù) 5.7 有哪些問(wèn)題以及如何從傳統(tǒng)模式轉(zhuǎn)變?yōu)?GTID 模式

升級(jí)步驟簡(jiǎn)要如下:

安裝新版本 mysql, 從庫(kù)服務(wù)器安裝 5.7 版本 mysql

修改安裝目錄配置參數(shù), 修改從庫(kù)的 mysql 配置文件, 把 mysql 安裝目錄修改為 5.7 版本的安裝目錄

關(guān)閉從庫(kù) mysql 服務(wù)

新版本 mysql 啟動(dòng)實(shí)例, 使用 5.7 版本 mysql 啟動(dòng)待升級(jí)實(shí)例

升級(jí)字典, 使用 mysql_upgrade 升級(jí)字典

檢查, 查看 mysql log 日志#1 安裝新版本 mysql

## 下載 mysql5.7.17, 拷貝到 server 下的 / opt 文件目錄下

## 解壓, 創(chuàng)建軟連接, 授權(quán)

tar zvxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

ln-s/opt/mysql-5.7.17-linux-glibc2.5-x86_64/usr/local/mysql57

chown-R mysql:mysql/usr/data/mysql57

#2 修改配置參數(shù)

## 檢查配置文件中那些配置是使用到了 安裝目錄, 把使用到底都修改

舊:basedir=/usr/local/mysql56

plugin-dir=/usr/local/mysql56/lib/plugin/

新:basedir=/usr/local/mysql

plugin-dir=/usr/local/mysql/lib/plugin/

#3 關(guān)閉 mysql

[root@sutest244 mysqlup]#/usr/local/mysql56/bin/mysqladmin--socket=/tmp/mysql3399.sock-uroot-p shutdown

Enterpassword:

[root@sutest244 mysqlup]#ps axu|grep mysql3399|grep mysqld

[root@sutest244 mysqlup]#

#4 新版本啟動(dòng) mysql

[root@sutest244 mysqlup]#/usr/local/mysql/bin/mysqld--defaults-file=/data/mysqlup/mysql3399.cnf&

[1]15477

[root@sutest244 mysqlup]#ps axu|grep mysql3399|grep mysqld

mysql1547737.126.7119316721037520pts/4Sl03:340:05/usr/local/mysql/bin/mysqld--defaults-file=/data/mysqlup/mysql3399.cnf

[root@sutest244 mysqlup]#

[root@sutest244 mysqlup]#vim/data/mysqlup/data/error.log

#4.1 檢查

檢查啟動(dòng)后的錯(cuò)誤日志, 看下是否有配置參數(shù)報(bào)錯(cuò), 如果有, 修改

錯(cuò)誤日志會(huì)有大量的字典信息報(bào)錯(cuò), 這個(gè)暫不處理, 下個(gè)步驟修復(fù)#5 升級(jí)字典

[root@sutest244 bin]#/usr/local/mysql/bin/mysql_upgrade--socket=/tmp/mysql3399.sock-uroot-p

Enterpassword:

Checkingifupdateisneeded.

Checkingserver version.

Runningqueries to upgradeMySQLserver.

Checkingsystem database.

mysql.columns_priv OK

mysql.db OK

mysql.engine_cost OK

mysql.eventOK

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

Upgradingthe sys schema.

Checkingdatabases.

sys.sys_config OK

省略...

檢查用戶數(shù)據(jù)庫(kù)及表格

省略...Upgradeprocess completed successfully.

Checkingifupdateisneeded.

#6 檢查日志

查看 log 日志正常

2 主庫(kù) 5.6 從庫(kù) 5.7 存在問(wèn)題

由于從庫(kù)是 5.7 版本, mysqlperformancesys 等一些系統(tǒng)數(shù)據(jù)庫(kù)對(duì)象有發(fā)生變化, 同時(shí)一些 SQL 也有所變動(dòng)

2.1 修改用戶密碼失敗

1).?問(wèn)題

主庫(kù)修改用戶密碼, update mysql.user set password=password('newpasswd') where ...2018-03-29T01:22:45.058927Z12[ERROR]SlaveSQLforchannel'':Column1of table'mysql.user'cannot be convertedfromtype'char(16)'to type'char(32)',Error_code:1677

2018-03-29T01:22:45.059066Z12[ERROR]Errorrunning query,slave SQL thread aborted.Fixthe problem,andrestart the slave SQL threadwith"SLAVE START".Westopped at log'bin_log.000003'position3208

2). 分析

修改導(dǎo)致從庫(kù)復(fù)制異常停止, 因?yàn)?5.6 版本 mysql.user 表格的 password 字段, 在 5.7 沒(méi)有該字段, 修改為 authentication_string

3). 處理

方案 1: 事先處理, 執(zhí)行 update password 的前, 配置會(huì)話不記錄 binlog:set session sql_log_bin=off, 然后單獨(dú)到主從執(zhí)行該 SQL

方案 2: 事后處理, 如果已經(jīng)出現(xiàn)這個(gè)錯(cuò)誤, 則在從庫(kù)跳過(guò)該 sql 然后再開(kāi)啟復(fù)制同步, 最后從庫(kù)修改密碼setglobalsql_slave_skip_counter=1;

start slave sql_thread;

show slave status;

setsession sql_log_bin=off;

alter user suuser@'%'identifiedby'newpassword';

flush privileges;

setsession sql_log_bin=on;

2.2 SQL 語(yǔ)法問(wèn)題

1). 問(wèn)題

SELECT 字段超過(guò) GROUP BY 字段報(bào)錯(cuò)

select id,name,age,count(*) from tbuser group by name;

其他一些 SQL 語(yǔ)法問(wèn)題

2). 分析

5.7 跟 5.6 默認(rèn)的 sql_mode 配置不一樣, 如果 mysql 配置文件中沒(méi)有說(shuō)明 sql_mode, 升級(jí)后 sql_mode 將從 NO_ENGINE_SUBSTITUTION 修改為 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION, 該模式下會(huì)導(dǎo)致部分在 5.6 支持的 SQL 在 5.7 報(bào)語(yǔ)法錯(cuò)誤

3). 處理

方案 1: 事先處理, 在測(cè)試環(huán)境中, 詳細(xì)測(cè)試程序代碼在新版本數(shù)據(jù)庫(kù)上的兼容性, 若有異常, 則修復(fù)程序代碼中的 SQL 操作邏輯

方案 2: 事先處理, mysql 配置文件中, 指定 sql_mode 與 5.6 版本一致

方案 3: 事后處理, 如果已經(jīng)在出現(xiàn)這個(gè)錯(cuò)誤, 有需要快速響應(yīng)處理, 可以把 sql_mode 修改為跟 5.6 版本默認(rèn)的 sql_mode 一致即可

3 切換 GTID 模式

3.1 何為 GTID

Global Transaction ID, 全局唯一標(biāo)識(shí), 簡(jiǎn)稱 GTID, 一個(gè) GTID 代表在 某個(gè)實(shí)例上發(fā)生的一個(gè)事務(wù)

GTID = source_id:transaction_id, 其中 source_id 代表執(zhí)行該事務(wù)的實(shí)例的 server_uuid,transaction_id 是自增值, 從 1 開(kāi)始, 故 GTID 實(shí)際表示為: 在 source_id 實(shí)例上面發(fā)生的 第 transaction_id 個(gè)事務(wù)

3.2 GTID 相關(guān)配置參數(shù)ENFORCE_GTID_CONSISTENCY

warn

如果出現(xiàn) GTID 不兼容的語(yǔ)句用法, 在錯(cuò)誤日志會(huì)記錄相關(guān)信息, 那么需要調(diào)整應(yīng)該程序避免不兼容的寫(xiě)法, 直到完全沒(méi)有產(chǎn)生不兼容的語(yǔ)句, 可以通過(guò)應(yīng)該程序去排查所有的 sql, 也可以設(shè)置后觀察錯(cuò)誤日志一段時(shí)間, 這一步非常重要

on

啟動(dòng)強(qiáng)制 GTID 一致性

GTID_MODE

說(shuō)明

OFF

新事務(wù)是非 GTID, Slave 只接受不帶 GTID 的事務(wù), 傳送來(lái) GTID 的事務(wù)會(huì)報(bào)錯(cuò)

OFF_PERMISSIVE

新事務(wù)是非 GTID, Slave 只接受不帶 GTID 的事務(wù)也接受帶 GTID 的事務(wù)

ON_PERMISSIVE

新事務(wù)是 GTID, Slave 只接受不帶 GTID 的事務(wù)也接受帶 GTID 的事務(wù)

ON

新事務(wù)是 GTID, Slave 只接受帶 GTID 的事務(wù)

切換順序

需要嚴(yán)格按照以下順序, 不可跳躍

OFF <= =>?OFF_PERMISSIVE <= =>?ON_PERMISSIVE <= => ON

3.3?傳統(tǒng)復(fù)制切換 GTID 復(fù)制#step 1

# 修改 ENFORCE_GTID_CONSISTENCY 為 warn , 運(yùn)行一段時(shí)間, 檢查錯(cuò)誤日志里邊是否存在于 GTID 不兼容的語(yǔ)句用法, 并盡快修復(fù)

# 主從都執(zhí)行, 先后順序不要求

set@@global.enforce_gtid_consistency=warn;

#step 2

# 修改 ENFORCE_GTID_CONSISTENCY 為 on , 確定沒(méi)有不兼容語(yǔ)法后, 可以修改為 ON

# 主從都執(zhí)行, 先后順序不要求

set@@global.enforce_gtid_consistency=on;

#step 3

# 設(shè)置 GTID_MODE 為 off_permissiv

# 主從都執(zhí)行, 先后順序不要求

SET@@GLOBAL.GTID_MODE=OFF_PERMISSIVE;

#step 4

# 設(shè)置 GTID_MODE 為 off_permissiv=on_permissiv

# 主從都執(zhí)行, 先后順序不要求

SET@@GLOBAL.GTID_MODE=ON_PERMISSIVE;

#step 5

# 檢查全部實(shí)例 正在進(jìn)行的匿名交易數(shù)目, 也就是非 GTID 事務(wù)有沒(méi)有都傳送到從庫(kù)上了, 需要等到這個(gè)變量為 0 才是可以進(jìn)行下面操作

# 主從都執(zhí)行, 先后順序不要求

SHOW STATUS LIKE'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

#step 6

# 檢查所有實(shí)例上面的 slave 的非 GTID 是否都執(zhí)行完了

show master status;#取file跟pos到從庫(kù)去執(zhí)行查看

SELECT MASTER_POS_WAIT('bin_log.000003',88748605);#返回結(jié)果大于等于 0 則說(shuō)明事務(wù)已經(jīng)完全復(fù)制完成

#step 7

# 清理 binlog, 切換到新的 binlog 上面

# 主從都執(zhí)行, 先后順序不要求

flush logs;

#step8

# 啟動(dòng) GTID

# 主從都執(zhí)行, 先后順序不要求

SET@@GLOBAL.GTID_MODE=ON;

#step 9

# 修改 cnf 文件

# 主從都執(zhí)行, 先后順序不要求

gtid_mode=on

enforce-gtid-consistency=on

binlog_gtid_simple_recovery=1

3.4?GTID 復(fù)制切換傳統(tǒng)復(fù)制#step 1

# 停止從庫(kù)

# 所有從庫(kù)都執(zhí)行, 先后順序不要求

stop slave;

#step 2

# 重置 chanage master to 語(yǔ)句, 關(guān)閉 master_auto_position

# 所有從庫(kù)都執(zhí)行, 先后順序不要求

show slave status \G;#取 sql_thread 的 file 跟 position 位置, Relay_Master_Log_File Exec_Master_Log_Pos

change master to master_log_file='mysql-bin.000003',master_log_pos=4563,master_auto_position=0;

#step 3

# 測(cè)試同步是否正常

# 主庫(kù)對(duì)數(shù)據(jù)進(jìn)行操作, 看從庫(kù)的 position 有沒(méi)有變化, 同時(shí)看數(shù)據(jù)是否變更

#step 4

# 修改 GTID_MODE 為 ON_PERMISSIVE

# 主從都執(zhí)行

SET@@GLOBAL.GTID_MODE=ON_PERMISSIVE;

#step 5

# 修改 GTID_MODE 為 OFF_PERMISSIVE

# 主從都執(zhí)行

SET@@GLOBAL.GTID_MODE=OFF_PERMISSIVE;

#step 6

# 修改 GTID_MODE 為 OFF

# 主從都執(zhí)行

SET@@GLOBAL.GTID_MODE=OFF;

#step 7

# 清理 binlog, 切換到新的 binlog 上面

# 主從都執(zhí)行, 先后順序不要求

flush logs;

#step8

# 禁用 GTID, 其中 enforce-gtid-consistency 可以不關(guān)閉, 還是進(jìn)行 GTID 的一致性檢查

# 主從都執(zhí)行, 先后順序不要求

SET@@GLOBAL.GTID_MODE=OFF;

#step9

# 檢驗(yàn)同步情況

#10

# 修改 cnf 文件, 注釋 GTID 的參數(shù)

# 主從都執(zhí)行, 先后順序不要求

#gtid_mode=on

#enforce-gtid-consistency=on

#binlog_gtid_simple_recovery=1

來(lái)源: https://www.cnblogs.com/xinysu/p/8675286.html

總結(jié)

以上是生活随笔為你收集整理的mysql5.1.7升级到5.6_1 MySQL5.6 升级到 5.7 版本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久噜噜噜久久久 | 亚洲日本va中文字幕 | 国产绿帽一区二区三区 | 在线视频 91 | www色网| 亚洲日本国产精品 | 日韩在线视频网址 | 人人干人人玩 | 9i在线看片成人免费 | 国产男女无遮挡猛进猛出 | 免费精品视频在线 | 午夜亚洲aⅴ无码高潮片苍井空 | 精品乱人伦一区二区三区 | 日韩精品无码一本二本三本色 | 成人av中文字幕 | 色永久 | 99热导航| 韩国一级淫片免费看 | 99爱免费| 日本一区二区三区成人 | 亚洲高清精品视频 | 天天干视频在线观看 | 五月天激情开心网 | 亚洲三区视频 | 欧美韩国日本在线 | 国产激情视频网站 | av无码av天天av天天爽 | 国产一区中文字幕 | 2024男人天堂 | 黄色录像网址 | 欧美日本成人 | av一区二区在线播放 | 亚洲精品乱码久久久久久日本蜜臀 | 香蕉视频首页 | 亚洲精品在线中文字幕 | 国产911在线观看 | 调教丰满的已婚少妇在线观看 | 久久综合第一页 | julia一区二区中文久久97 | 天堂中文在线资 | 国产日韩精品在线 | 男女瑟瑟网站 | 欧美精品乱码99久久蜜桃 | 草草久久久无码国产专区 | 亚洲区综合 | 日本最新中文字幕 | 国产91美女视频 | 亚洲视频在线免费观看 | 国产裸体永久免费无遮挡 | 亚洲第一色 | 亚洲高清无码久久 | 中文字幕不卡视频 | 午夜剧场免费在线观看 | 一级v片 | 欧美日韩一级大片 | 操她视频网站 | 久久免费av | 精品深夜av无码一区二区老年 | 亚洲精品乱码久久久久久9色 | 乐播av一区二区三区 | 丰满大乳国产精品 | n0659极腔濑亚美莉在线播放播放 | eeuss国产一区二区三区黑人 | 午夜视频www | 偷拍欧美亚洲 | 碧蓝之海动漫在线观看免费高清 | 久久久久无码精品 | 黄色成人在线观看 | 少妇无码av无码专区在线观看 | 午夜国产福利在线观看 | 国产77777| 亚洲精品日本 | 欧美日韩tv | 99国产精品久久久久 | 国产午夜精品一区二区三区嫩草 | 黄色1级片 | 成人免费不卡视频 | 91国产视频在线播放 | 特级西西444www大精品视频 | 日本一区二区在线免费 | 亚洲三级影院 | 日本美女一级片 | 亚洲天堂小视频 | 18禁免费无码无遮挡不卡网站 | 色欲久久久天天天精品综合网 | 欧美黑人巨大xxx极品 | 天天爽天天色 | 国产黄色高清视频 | 亚洲国产成人精品无码区99 | 4438x全国最大成人 | jizz日本少妇 | 极品粉嫩小仙女高潮喷水久久 | 日本一区二区三区电影在线观看 | 校园激情亚洲 | 国产综合区 | 99色图 | 毛片免费在线观看视频 | 人人澡人人插 | 亚洲欧美日韩动漫 |