web-dev-qa-db-ja.com

uNIXソケットファイルのmysqld_safeディレクトリ '/ var/run/mysqld'が存在しません

Mysqld_safeを使用してmysqlサーバー5.7.17を起動中に、エラーocccoursが表示されます。

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

それを修正するには?

123
Rajadip

インストール時にこのディレクトリが作成されなかったことは奇妙に思えます - あなたは手動でmy.cfgのソケットファイルのパスを変更しましたか?

このディレクトリを自分で作成してサービスを再起動してみましたか?

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
335
Matt Clark

コードmysqld_safe --skip-grant-tables &を使用したがエラーが発生しました。

mysqld_safe UNIXソケットファイル用のディレクトリ '/ var/run/mysqld'が存在しません。

$ systemctl stop  mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &

私は解決しました:

$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld

今私は同じコードmysqld_safe --skip-grant-tables &を使用して取得します

mysqld_safe/var/lib/mysqlのデータベースを使用してmysqldデーモンを起動する

$ mysql -u rootを使えば、

サーバーのバージョン:5.7.18-0ubuntu0.16.04.1(Ubuntu)

Copyright(c)2000、2017、Oracleおよび/またはその関連会社。全著作権所有。

Oracleは、Oracle Corporationおよび/またはその関連会社の登録商標です。その他の名称は、それぞれの所有者の商標です。

「help;」と入力します。または '\ h'が助けになります。現在の入力ステートメントを消去するには、 '\ c'を入力します。

mySQL>

今パスワードを変更する時:

mysql> use mysql
mysql> describe user;

テーブル名とカラム名を補完するためのテーブル情報の読み取りこの機能をオフにすると、-Aを使用して起動時間を短縮できます

データベースが変更されました

mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');

またはどこからでも接続できるmysql rootアカウントを持っている場合は、次のようにする必要があります。

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

代替方法:

   USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

そして、あなたがどこからでもアクセスできるrootアカウントを持っているなら:

 USE mysql
 UPDATE user SET Password = PASSWORD('newpwd')
 WHERE Host = '%' AND User = 'root';`enter code here

mysqlからquitしてstop/startする必要があります

FLUSH PRIVILEGES;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start

今度は再び `mysql -u root -p 'になり、新しいパスワードを使って取得します。

mySQL>

39
Partha Sen

CentOSで私のために働きます:

$ service mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root mysql

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

$ service mysql restart
4
Heli Perez

データベースにデータがない場合は、次のことを試してください。[OR他に別のデータがあります。 Ubuntuサーバーのrootパスワードを知っている必要がありますが、mysqlのrootパスワードは知っている必要はありません。

これはベストプラクティスであるため、多くの人が "mysql_secure_installation"をインストールした可能性が非常に高いです。 mysql_secure_installationが存在するbinディレクトリに移動します。 Ubuntuシステムの/ binディレクトリにあります。インストーラを再実行すると、ルートデータベースのパスワードを変更するかどうかを尋ねるプロンプトが表示されます。

0
David Baldwin