
Я работал надответ на этот вопрос—на одном из моих серверов разработки 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
, как и ожидалось.