因為init_command 導致的 mysql 5.6 主從連線失敗的案例一則。
mysql 5.6 從庫主機安排了計劃性重啟, 重啟主機後, 問題來了。
例項 無法連線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 還是報錯。
因為啟用了gtid , 兩邊對照了gtid 的各個引數都是一致的。 也排除了gtid 的故障。
因為重啟之前都是OK 的, 也不存資料問題。 納悶了。
看日誌就上上面這樣了。
一時沒明白過來。 去主庫上看看 。
問題找到了。
#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 引數 加了一條sql 語句。
對應到了日誌裡的 init_command 的報錯。
看看許可權
[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 註釋掉後, 一切都ok 了。
原來之前因為某個事件 , 增加了一點審計功能, 就用init_command 實現了。
原來是忘記給repl 授權了。
導致 repl 再次登入的時候, 無權操作這個insert 語句報錯。退出了。無法連線master .
此則 案例記錄之。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2214315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.6因為OOM導致資料庫重啟MySqlOOM資料庫
- 遠端主機mysql連線失敗MySql
- mysql臨時表空間不夠導致主從複製失敗MySql
- Linux主機名修改後導致mysql重啟失敗LinuxMySql
- sock鎖檔案導致的MySQL啟動失敗MySql
- Mysql備份失敗案例(一)MySql
- 遠端連線 Mysql 失敗的解決方法MySql
- mysql連線失敗:ArgumentException: 指定的值在“SslProtocolType”MySqlExceptionProtocol
- wait_type SOS_WORKER導致資料庫連線失敗AI資料庫
- 儲存互斥失敗導致資料丟失的資料恢復成功案例資料恢復
- 關於MYSQL 5.6 super_read_only和Event Scheduler衝突導致啟動失敗MySql
- 解決一次gitlab因異常關機導致啟動失敗Gitlab
- 【RAC】因清理不完整導致RAC ASM例項建立失敗ASM
- TSM備份時因歸檔日誌丟失而導致備份失敗
- ORA-12545: 因目標主機或物件不存在, 連線失敗物件
- MongoVUE 連線失敗GoVue
- 一個簡單的MySQL引數導致的連線問題解惑MySql
- Drive客戶端因SSL證書已更改導致聯機失敗客戶端
- mysql5.6搭建主從過程中遇到主從server_uuid一致無法同步的問題MySqlServerUI
- 為什麼我的 PHP 資料庫連線失敗?PHP資料庫
- 故障分析 | DDL 導致的 Xtrabackup 備份失敗
- 獲取導致匯入失敗的資料
- Mysql5.6主從複製MySql
- mysql之 mysql 5.6不停機主從搭建(一主一從基於GTID複製)MySql
- DML_LOCKS設定為0導致SHUTDOWN IMMEDIATE失敗
- MYSQL 主從不一致的原因分析MySql
- 【案例】BNL演算法導致效能下降一則演算法
- springboot衝突導致的發版失敗Spring Boot
- 獲取導致匯入失敗的資料(五)
- 獲取導致匯入失敗的資料(四)
- 獲取導致匯入失敗的資料(三)
- 獲取導致匯入失敗的資料(二)
- 糟糕的範圍管理導致專案失敗(轉)
- mysql之 mysql 5.6不停機主從搭建(一主一從基於日誌點複製)MySql
- 因AIX系統目錄許可權問題導致TSM備份失敗AI
- 【Mysql】mysql主鍵的缺少導致備庫hangMySql
- Oracle備庫TNS連線失敗的分析Oracle
- 使用CDN導致301跳轉失敗(主域名、泛解析)的解決方案