使用 mysqld_safe 啟動 mysqld 服務

mysqld_safe 介紹

mysqld_safe is the recommended way to start a mysqld server on Unix. mysqld_safe adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log. [1]

在 Unix 機器上,MySQL 官方推薦使用 mysqld_safe 啟動 mysqld 服務。mysqld_safe 增加了一些安全特性,比如它會在遇到錯誤時重啟 mysqld 服務,並把運行時資訊記錄到 error log 中。

啟動

下述是以 CentOS 為例,使用 mysqls_safe 啟動 mysqld 服務的命令。

mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &

其中 --defaults-file=my.cnf 指定了默認的配置文件為當前目錄下的 my.cnf,我在裡面指定了埠為 3306。> mysqld_log 指定了將標準輸出重定向到 msyqld.log2>&1 表示將標準錯誤輸出重定向到標準輸出,末尾的 & 表示後台運行。因此,執行上述命令,我們使用 mysqld_safemy.cnf 中的配置啟動了一個 mysqld 進程,它始終在後台運行,所有的輸出(包括錯誤輸出)都將彙集到 mysqld.log 文件中。

按下回車執行命令後,終端將返回這個任務的編號和進程號,如果後續想要再次查看,可以通過 jobs -l 命令來查看當前 Shell 環境中所有的任務。

[root@centos conf]# mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &
[1] 37225
[root@centos conf]# jobs -l
[1]+ 37225 Running                 mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &

其中 [1] 代表任務號,+ 代表這是最近一個任務,37225 代表進程號 PID,剩下的代表啟動任務的命令。

至此,mysqld 服務啟動成功。我們可以執行下述命令來嘗試連接它。

[mysql@centos ~]$ mysql -h127.0.0.1 -P3306 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

如上,顯示 Welcome 則連接成功。

停止

執行下述命令查看 mysqld 的 PID:

netstat -antp | grep mysqld

找到綁定地址為:::3306 的進程,執行下述命令以殺死 mysqld 進程:

kill $PID

  1. //dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html ↩︎

Tags: