MySQL 5.6 GTID常見錯誤解決一例

chenfeng發表於2017-05-11
今天在測試環境搭建完基於GTID的雙主環境後,啟動資料庫報錯:

[root@localhost ~]# service mysqld start
Starting MySQL.........The server quit without updating PID[FAILED]usr/local/mysql/data/localhost.pid).


檢視錯誤日誌/var/log/mysqld.log,發現有如下資訊:

2017-05-11 09:08:38 56355 [Note] Audit Plugin: Init completed successfully.
2017-05-11 09:08:38 56355 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates
2017-05-11 09:08:38 56355 [ERROR] Aborting


說明如下:
gtid_mode=ON,log_slave_updates,enforce_gtid_consistency這三個引數一定要同時在my.cnf中配置。否則在mysql.err中會出現如下的報錯


2015-02-26 17:11:08 32147 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates


2015-02-26 17:13:53 32570 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 requires --enforce-gtid-consistency


修改/etc/my.cnf,加入以下內容:
gtid-mode = on
log-slave-updates=ON
enforce-gtid-consistency=ON


再次啟動資料庫後,再無報錯:


[root@localhost ~]# service mysqld start
Starting MySQL.....                                        [  OK  ]




[root@localhost ~]# mysql -u mdba -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.27-log Source distribution


Copyright (c) 2000, 2015, 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.


檢視gtid模式:


mysql> show global variables like '%gtid%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| binlog_gtid_simple_recovery     | OFF   |
| enforce_gtid_consistency        | ON    |
| gtid_executed                   |       |
| gtid_mode                       | ON    |
| gtid_owned                      |       |
| gtid_purged                     |       |
| simplified_binlog_gtid_recovery | OFF   |
+---------------------------------+-------+
7 rows in set (0.00 sec)

GTID相關引數
引數                     comment
gtid_executed           執行過的所有GTID
gtid_purged           丟棄掉的GTID
gtid_mode           gtid模式
gtid_next           session級別的變數,下一個gtid
gtid_owned           正在執行的gtid
enforce_gtid_consistency    保證GTID安全的引數


GTID複製的限制:
GTID 模式例項和非GTID模式例項是不能進行復制的,要求非常嚴格,要麼都是GTID,要麼都不是
gtid_mode 是隻讀的,要改變狀態必須1)關閉例項、2)修改配置檔案、3) 重啟例項
在同一事務中更新事務表與非事務表將導致多個GTIDs分配給同一事務
無法使用CREATE TABLE ... SELECT statements語句
無法在事務中對非事務儲存引擎進行更新
無法在事務中使用CREATE TEMPORARY TABLE


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2138880/,如需轉載,請註明出處,否則將追究法律責任。

相關文章