我正在这个问题的答案— 在我的其中一台 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