您好,登錄后才能下訂單哦!
小編給大家分享一下init_command導(dǎo)致mysql 5.6主從連接失敗怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
mysql 5.6 從庫主機(jī)安排了計劃性重啟, 重啟主機(jī)后, 問題來了。
實(shí)例 無法連接master 了。
報錯如下:
[code]
2018-09-17 12:21:50 28554 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='192.168.8.42', master_port= 3307, master_log_file='', master_log_pos= 4, master_bind=''. New state master_host='192.168.8.42', master_port= 3307, master_log_file='', master_log_pos= 4, master_bind=''.2018-09-17 12:21:58 28554
[Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended.
Please consider using the USER and PASSWORD connection options for START SLAVE;
see the 'START SLAVE Syntax' in the MySQL Manual for more information.2018-09-17 12:21:58 28554
[Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log './relay-bin.000001' position: 42018-09-17 12:21:58 28554
[Note] Slave I/O thread: connected to master 'repl@192.168.8.42:3307',replication started in log 'FIRST' at position 42018-09-17 12:21:58 28554
[Warning] "SELECT UNIX_TIMESTAMP()" failed on master, do not trust column Seconds_Behind_Master of SHOW SLAVE STATUS. Error: Aborted connection 12505106 to db: 'unconnected' user: 'repl' host: '192.168.8.43' (init_connect command failed) (1184)2018-09-17 12:21:58 28554 [ERROR] Slave I/O: The slave I/O thread stops because a fatal error is encountered when it tries to SET @master_heartbeat_period on master. Error: , Error_code: 15932018-09-17 12:21:58 28554
[Note] Slave I/O thread exiting, read up to log 'FIRST', position 4
[/code]
咋回事呢, 同事重置了slave 還是報錯。
因?yàn)閱⒂昧薵tid , 兩邊對照了gtid 的各個參數(shù)都是一致的。 也排除了gtid 的故障。
因?yàn)橹貑⒅岸际荗K 的, 也不存數(shù)據(jù)問題。 納悶了。
看日志就上上面這樣了。
一時沒明白過來。 去主庫上看看 。
問題找到了。
#init_connect='set names gbk;insert into db_monitor.accesslog(thread_id,log_time,localname,matchname) values(connection_id(),now(),user(),current_user());commit;'
主庫上的init_command 參數(shù) 加了一條sql 語句。
對應(yīng)到了日志里的 init_command 的報錯。
看看權(quán)限
[code]
mysql.sock@(none)> use mysql
Database changed
mysql.sock@mysql> select * from tables_priv ;
+------+------------+--------------+------------+----------------+---------------------+------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+------+------------+--------------+------------+----------------+---------------------+------------+-------------+
| % | db_monitor | user_app | accesslog | root@localhost | 0000-00-00 00:00:00 | Insert | |
+------+------------+--------------+------------+----------------+---------------------+------------+-------------+
1 row in set (0.02 sec)
mysql.sock@mysql>
[/code]
把init_command 注釋掉后, 一切都o(jì)k 了。
原來之前因?yàn)槟硞€事件 , 增加了一點(diǎn)審計功能, 就用init_command 實(shí)現(xiàn)了。
原來是忘記給repl 授權(quán)了。
導(dǎo)致 repl 再次登錄的時候, 無權(quán)操作這個insert 語句報錯。退出了。無法連接master .
以上是“init_command導(dǎo)致mysql 5.6主從連接失敗怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。