Linux
mysqld 死了但 subsys 被鎖定
我在 shell 腳本中執行以下命令,並且在 RHEL-6 伺服器和 MySQL 版本 5.1.47 上執行此命令-
mysqld_safe --defaults-extra-file=/custom/path/of/my.cnf
my.cnf 的路徑可以是任何東西。(如果我沒記錯的話,作為開發人員我們無法確定mysql可以安裝在哪裡。)在腳本中的上述命令之後,還有一些mysql命令要執行。當腳本執行上述命令時,輸出控制台顯示mysql服務已成功啟動。但是當控製到要執行mysql命令的部分時,出現以下錯誤消息-
mysqld dead but subsys locked
知道我哪裡出錯了嗎?
這就是我所
my.cnf
包含的——[mysqld] innodb_log_buffer_size=8M innodb_flush_log_at_trx_commit=1 innodb_file_io_threads=4 max_binlog_size=20M max_allowed_packet=16M max_connections=500 log_bin=logFile.log binlog-do-db=test server-id=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql binlog-format=ROW log_warnings=1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
對我來說,這意味著守護程序已經崩潰並重新啟動,但是 mysqld 用來防止多個守護程序訪問同一個數據庫的鎖定文件仍然存在……
我用
service mysqld stop service mysqld start
不確定您是否可以重新啟動而不是停止然後啟動,而且我還沒有弄清楚崩潰的原因。
執行 mysqld_safe 命令後,確保使用 ‘ps -ef | 啟動 mysql 伺服器。grep mysql’ 命令。如果啟動 mysql 伺服器,您會在命令輸出中看到兩個程序(mysqld 和 mysqld_safe)。
如果伺服器根本沒有啟動,請添加 log_error=/custom/path/to/log/file$$ mysqld $$在你的 my.cnf 部分並在此處粘貼錯誤日誌以調查 mysql 伺服器的問題
如果伺服器正在啟動但只是關於子系統或權限的問題,或者,
- 停止mysql服務
- 刪除 subsys 文件(通常:/var/lock/subsys/mysql)
- 啟動mysql服務並嘗試如下登錄mysql伺服器:mysql -uroot -p your_root_pass
如果您不介意粘貼錯誤日誌,那麼確定服務問題的確切原因對任何人都有幫助。