[mysql@host ~]$ mysqld_safe
21:31:19 mysqld_safe Logging to '/opt/mysql/mysqldata/host.err'.
21:31:19 mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
mysqld_safe 腳本內部**硬編碼**尋找 /usr/local/mysql/bin/mysqld,二進制包安裝若非此路徑會失敗。
su - root
mkdir -p /usr/local/mysql/bin
ln -s /opt/mysql/product/5.5/bin/mysqld /usr/local/mysql/bin/mysqld
# 再次啟動
mysqld_safe
vim /opt/mysql/product/5.5/bin/mysqld_safe
# 找到 MY_BASEDIR_VERSION 或 MYSQLD 相關路徑變數
# 修改為實際安裝路徑
MY_BASEDIR_VERSION=/opt/mysql/product/5.5
# 或修改 MY_MYSQLD 絕對路徑
參考 通用二進制包安裝文檔 建立 /etc/systemd/system/mysqld.service,直接 systemctl start mysqld,繞過 mysqld_safe。
ps -ef | grep mysqld
# 應看到 mysqld_safe 與 mysqld 兩進程
netstat -tnlp | grep 3306
# 監聽 3306
mysql -u root -p -S /var/run/mysqld/mysqld.sock -e "SELECT VERSION();"
MySQL 讀取 my.cnf 順序 (後蓋前):
SYSCONFDIR/my.cnf (編譯時指定,通常 /etc)$MYSQL_HOME/my.cnfdatadir/my.cnf--defaults-file= 指定檔案 (最高優先級,排他)建議統一管理 /etc/my.cnf,其餘位置不放配置。
| 方法 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| 符號連結 | 秒級修復、不改動原始碼 | 升級需重建連結 | 快速測試、臨時環境 |
| 修改腳本 | 徹底修復 | 升級覆蓋腳本失效 | 固定版本長期運行 |
| systemd 服務 | 標準化、開機自啟、依賴管理 | 需 systemd 支援 (CentOS 7+) | 生產環境標準部署 |