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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID

發布時間:2025/4/5 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL5.7在線開啟/關閉GTID

環境介紹

Part1:寫在最前

截止本文撰寫當日,MySQL5.7.16是官網的最新穩定版,本文將用MySQL5.7.16來進行演示。從MySQL5.6開始,支持了GTID復制模式,這種模式其實是把雙刃劍,雖然容易搭建主從復制了,但使用不當,就容易出現一些錯誤,例如error 1236。在MySQL5.6如果開啟GTID模式,需要在my.cnf中加入以下幾個參數:

①log-bin=mysql-bin

②binlog_format=row

③log_slave_updates=1

④gtid_mode=ON

⑤enforce_gtid_consistency=ON

Warning:警告這里的一些參數不是動態參數,也就是需要重啟mysql才能生效。

Part2:環境[root@HE1?~]#?mysql?-uroot?-p

Enter?password:

Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g.

Your?MySQL?connection?id?is?4

Server?version:?5.7.16-log?MySQL?Community?Server?(GPL)

Copyright?(c)?2000,?2016,?Oracle?and/or?its?affiliates.?All?rights?reserved.

Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its

affiliates.?Other?names?may?be?trademarks?of?their?respective

owners.

Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.

mysql>?select?version();

+------------+

|?version()??|

+------------+

|?5.7.16-log?|

+------------+

1?row?in?set?(0.00?sec)

mysql>?show?global?variables?like?'log_slave%';

+-------------------+-------+

|?Variable_name?????|?Value?|

+-------------------+-------+

|?log_slave_updates?|?OFF???|

+-------------------+-------+

1?row?in?set?(0.00?sec)

MySQL5.6開啟GTID需要開啟log_slave_updates參數,否則啟動報錯,而5.7不在需要開啟該參數。

實戰

Part1:搭建傳統復制模式

本文環境HE1為從,HE3為主庫

[root@HE1?~]#?mysql?-uroot?-p

Enter?password:

Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g.

Your?MySQL?connection?id?is?7

Server?version:?5.7.16-log?MySQL?Community?Server?(GPL)

Copyright?(c)?2000,?2016,?Oracle?and/or?its?affiliates.?All?rights?reserved.

Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its

affiliates.?Other?names?may?be?trademarks?of?their?respective

owners.

Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.

mysql>?show?slave?status\G

***************************?1.?row?***************************

Slave_IO_State:?Waiting?for?master?to?send?event

Master_Host:?192.168.1.250

Master_User:?mysync

Master_Port:?3306

Connect_Retry:?60

Master_Log_File:?mysql-bin.000002

Read_Master_Log_Pos:?1694

Relay_Log_File:?HE1-relay-bin.000002

Relay_Log_Pos:?320

Relay_Master_Log_File:?mysql-bin.000002

Slave_IO_Running:?Yes

Slave_SQL_Running:?Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno:?0

Last_Error:

Skip_Counter:?0

Exec_Master_Log_Pos:?1694

Relay_Log_Space:?525

Until_Condition:?None

Until_Log_File:

Until_Log_Pos:?0

Master_SSL_Allowed:?No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master:?0

Master_SSL_Verify_Server_Cert:?No

Last_IO_Errno:?0

Last_IO_Error:

Last_SQL_Errno:?0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id:?1250

Master_UUID:?82b160c7-9a8f-11e6-8412-000c29c6361d

Master_Info_File:?/data/mysql/master.info

SQL_Delay:?0

SQL_Remaining_Delay:?NULL

Slave_SQL_Running_State:?Slave?has?read?all?relay?log;?waiting?for?more?updates

Master_Retry_Count:?86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position:?0

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

1?row?in?set?(0.00?sec)

Part2:傳統復制模式切換為GTID

①主庫從庫都需執行以下命令mysql>?set?global?gtid_mode='OFF_PERMISSIVE';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>?set?global?gtid_mode='ON_PERMISSIVE';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>?set?global?enforce_gtid_consistency=ON;

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?set?global?gtid_mode='ON';

Query?OK,?0?rows?affected?(0.00?sec)

②主庫插數從庫執行mysql>?show?master?status;

+------------------+----------+--------------+------------------+----------------------------------------+

|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set??????????????????????|

+------------------+----------+--------------+------------------+----------------------------------------+

|?mysql-bin.000005?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|

+------------------+----------+--------------+------------------+----------------------------------------+

1?row?in?set?(0.00?sec)

可以看到gtid_set下面有數了,這說明已經開啟了gtid模式

Part3:GTID變更為傳統模式mysql>?stop?slave;-----從庫執行

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?set?global?gtid_mode='ON_PERMISSIVE';

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?set?global?gtid_mode='OFF_PERMISSIVE';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>?CHANGE?MASTER?TO?MASTER_AUTO_POSITION=0;

Query?OK,?0?rows?affected?(0.05?sec)

mysql>?set?global?gtid_mode='OFF';

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?start?slave;

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?show?variables?like?'%gtid%';

+----------------------------------+----------------------------------------+

|?Variable_name????????????????????|?Value??????????????????????????????????|

+----------------------------------+----------------------------------------+

|?binlog_gtid_simple_recovery??????|?ON?????????????????????????????????????|

|?enforce_gtid_consistency?????????|?ON?????????????????????????????????????|

|?gtid_executed_compression_period?|?1000???????????????????????????????????|

|?gtid_mode????????????????????????|?OFF????????????????????????????????????|

|?gtid_next????????????????????????|?AUTOMATIC??????????????????????????????|

|?gtid_owned???????????????????????|????????????????????????????????????????|

|?gtid_purged??????????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|

|?session_track_gtids??????????????|?OFF????????????????????????????????????|

+----------------------------------+----------------------------------------+

8?rows?in?set?(0.01?sec)

可以看到這里GTID模式已經關了,下面再次開啟GTID模式來觀察id的變化mysql>?set?global?gtid_mode='OFF_PERMISSIVE';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>?set?global?gtid_mode='ON_PERMISSIVE';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>?set?global?enforce_gtid_consistency=ON;

Query?OK,?0?rows?affected?(0.00?sec)

mysql>?set?global?gtid_mode='ON';

Query?OK,?0?rows?affected?(0.01?sec)

mysql>

mysql>

mysql>?show?variables?like?'%gtid%';

+----------------------------------+----------------------------------------+

|?Variable_name????????????????????|?Value??????????????????????????????????|

+----------------------------------+----------------------------------------+

|?binlog_gtid_simple_recovery??????|?ON?????????????????????????????????????|

|?enforce_gtid_consistency?????????|?ON?????????????????????????????????????|

|?gtid_executed_compression_period?|?1000???????????????????????????????????|

|?gtid_mode????????????????????????|?ON?????????????????????????????????????|

|?gtid_next????????????????????????|?AUTOMATIC??????????????????????????????|

|?gtid_owned???????????????????????|????????????????????????????????????????|

|?gtid_purged??????????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|

|?session_track_gtids??????????????|?OFF????????????????????????????????????|

+----------------------------------+----------------------------------------+

8?rows?in?set?(0.00?sec)

主庫做操作,從庫執行如下命令會看到gtid_set的值在變化

mysql>?show?master?status;

+------------------+----------+--------------+------------------+------------------------------------------+

|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set????????????????????????|

+------------------+----------+--------------+------------------+------------------------------------------+

|?mysql-bin.000011?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1-2?|

+------------------+----------+--------------+------------------+------------------------------------------+

1?row?in?set?(0.00?sec)

mysql>?show?master?status;

+------------------+----------+--------------+------------------+------------------------------------------+

|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set????????????????????????|

+------------------+----------+--------------+------------------+------------------------------------------+

|?mysql-bin.000011?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1-3?|

+------------------+----------+--------------+------------------+------------------------------------------+

1?row?in?set?(0.00?sec)

——總結——

MySQL5.7開啟/關閉GTID,不用重啟mysql,這大大提高了GTID的易用性。由于筆者的水平有限,編寫時間也很倉促,文中難免會出現一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。