背景
搭建了mysql的主從環境,然后在從上面kill -9殺死了mysql進程。之后在slave上面重啟mysql服務,端口起來后無法登陸數據庫。過了好一會才能登陸上去。
查看mysql.err錯誤日志發現如下信息
2020-04-22T10:27:16.091165Z 0 [Note] InnoDB: Doing recovery: scanned up to log sequence number 78607991370
之后打印
[Note] InnoDB: Database was not shutdown normally!
[Note] InnoDB: Starting crash recovery.
提示說mysql沒有正常關閉。那么怎么才算正常關閉呢,正常關閉和非正常關閉有啥區別呢?
帶着這些疑問,去查一下資料。
資料
(1)mysql正常關閉方法: bin/mysqladmin -u ${user} -p ${password} -S ${mysql.sock} shutdown
舉例:
/kingdb/usr/local/nestdb_master/bin/mysqladmin -uroot -p123456 -S /kingdb/usr/local/nestdb_master/tmp/mysql.sock shutdown
查看mysql.err日志,發現記錄了shutdown之后都干了什么事:
[Note] Giving 0 client threads a chance to die gracefully ---gracefully,應該就表示是溫和不失禮貌的關閉方式
Shutting down slave threads
Forcefully disconnecting 0 remaining clients
Binlog end
Shutting down plugin 'ngram'
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Dumping buffer pool(s) to /kingdb/usr/local/nestdb_master/var/ib_buffer_pool
InnoDB: Buffer pool(s) dump completed at 200422 20:59:40
InnoDB: shut down release done
InnoDB: shut down all bg threads
[Warning] InnoDB: Some (1) threads are still active
[Note] InnoDB: Shutdown completed; log sequence number 4522278
[Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
[Note] Shutting down plugin 'binlog'
[Note] /kingdb/usr/local/nestdb_master/bin/mysqld: Shutdown complete
上面的日志,大致看出流程為: 關閉插件-->dumping buffer pool--->殺掉進程--->刪掉了臨時表空間文件ibtmp1---->關閉binlog插件等
