web-dev-qa-db-ja.com

値が「my.cnf」に設定されているのに、「mysqld.pid」と「mysqld.sock」がシステムにないのはなぜですか?

私は この質問への回答 —私のUbuntu 12.04.5開発サーバーの1つで作業しており、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

なぜこれが発生し、問題を解決するために何ができるでしょうか?

2
JakeGould

mysqld.pidmysqld.sockの場所はサーバーのmy.cnfに設定されていますが、ディレクトリが存在しないため、これらのファイルは作成されません。これはそれを修正します:

最初に、次のようにmysqld//var/run/ディレクトリを作成します。

Sudo mkdir -p /var/run/mysqld/

次に、touchを使用してmysqld.pidファイルを作成します。

Sudo touch /var/run/mysqld/mysqld.pid

次に、touchを使用してmysqld.sockファイルを作成します。

Sudo touch /var/run/mysqld/mysqld.sock

次に、ディレクトリとファイルの所有権を次のようにmysql:mysqlに変更します。

Sudo chown mysql:mysql -R /var/run/mysqld

次のようにMySQLを再起動して、これらのファイルを設定および作成します。

Sudo service mysql restart

すべて完了すると、MySQLはmysqld.pidおよびmysqld.sockファイルを期待どおりに作成できるようになります。

5
JakeGould