
我正在研究這個問題的答案— 在我的一台 Ubuntu 12.04.5 開發伺服器上 — 並意識到 MySQL 安裝沒有建立mysqld.pid
文件,mysqld.sock
儘管它們的路徑明確設定my.cnf
如下:
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
為什麼會發生這種情況以及可以採取哪些措施來解決該問題?
答案1
mysqld.pid
儘管和的位置mysqld.sock
在我的伺服器中設置my.cnf
,但該目錄不存在,因此永遠不會建立這些檔案。這將解決這個問題:
首先,像這樣建立mysqld/
目錄:/var/run/
sudo mkdir -p /var/run/mysqld/
然後,mysqld.pid
使用以下命令建立一個檔案touch
:
sudo touch /var/run/mysqld/mysqld.pid
接下來,建立一個mysqld.sock
文件touch
:
sudo touch /var/run/mysqld/mysqld.sock
現在,將目錄和檔案的所有權變更為mysql:mysql
如下所示:
sudo chown mysql:mysql -R /var/run/mysqld
最後,這些文件的權限應該是:
chmod 755 /var/run/mysqld
chmod 777 /var/run/mysqld/mysqld.sock
chmod 660 /var/run/mysqld/mysqld.pid
然後像這樣重新啟動 MySQL 以設定並建立這些檔案:
sudo service mysql restart
當這一切完成後,MySQL 將能夠按預期建立mysqld.pid
和檔案。mysqld.sock