web-dev-qa-db-ja.com

mysql.sockがCentOS 7マシンで見つからない

MysqlがインストールされているマシンのCentOS 7端末からmysqlにログインしようとすると、次のエラーが発生します。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

mysql.sockはどこにありますか。また、このエラーを解決するにはどうすればよいですか?

ここに私がすでに試したことのいくつかがあります:

1.)cd /var/lib/mysqlおよびls -alを試しましたが、結果のファイルリストにmysql.sockが含まれていませんでした。

2.)systemctl status mysqldがmysqlの停止を示していることを確認したとき、私もsystemctl start mysqldを試しましたが、ターミナルは何かを待っているかのように、新しいプロンプトなしで応答しないカーソルを出しましたが、それは無期限にそのリンボ状態のままでした。

3.)そこで、別のターミナルウィンドウを開いてsystemctl status mysqldを実行しましたが、mysqldが再び起動されたことを確認するだけでした。しかし、エラーは解決しません。

4.)find / -name "mysql.sock"を試しましたが、応答はfind: ‘/run/username/1000/gvfs’: Permission deniedでした。

5.)次に この投稿 を読んでmysqladmin | grep d.sockを試しましたが、結果がありませんでした。

6.)yum remove mysqlに続いてyum install mysqlを使用することさえしましたが、mysql -u rootを使用しても、この投稿の上部に同じ元のエラーが表示されます。

7.)そして、私は この他の投稿 を読みますが、mysqladmin variablesは、mysql.sockが見つからないために接続できないのと同じエラーを示します。

8.)ln -s /tmp/mysql.sock /var/mysql/mysql.sockを試してみましたが、cd /var/lib/mysql/およびls -alを試したときにmysqlへのリンクが表示されても、同じエラーが持続しました

9.)問題はsystemctl start mysqldがハングアップするという事実に関係している可能性があるため、私は この投稿 を読み、chown -R mysql:mysql /var/lib/mysqlsystemctl start mysqldを試しましたが、結果は「メソッド呼び出しの発行に失敗しました:ユニットmysqld.serviceの読み込みに失敗しました:そのようなファイルまたはディレクトリはありません。」

10.)次に この投稿 を読み、mysql --help | grep "Default options" -A 1を実行しました。結果は、mysqlmy.cnfを探す場所を出力しました。したがって、すべての場所を確認したところ、my.cnfファイルは見つかりませんでした。しかし、mysql.cnf.rpmsaveを見つけたので、mv mysql.cnf mysql.cnf.rmpsaveを試しました。これにより、予期したディレクトリにmy.cnfが存在しましたが、systemctl status mysqldmysqldが見つからないことを示しています。 yum install mysqlをもう一度試しましたが、mysqlがすでにインストールされていることがわかりました。したがって、my.cnfが破損していると思います。もしそうなら、どうすれば修正できますか? リンクはこちら ファイル共有サイトのmy.cnfのコピーへ。

11.)次に、RolandoMySQLDBAの提案を試してみました。

[root@localhost]# mysqladmin -h127.0.0.1 -P 3306 --protocol=tcp -uroot -p shutdown
Enter password: 
mysqladmin: connect to server at '127.0.0.1' failed
error: 'Can't connect to MySQL server on '127.0.0.1' (111)'
Check that mysqld is running on 127.0.0.1 and that the port is 3306.
You can check this by doing 'telnet 127.0.0.1 3306'
[root@localhost etc]# telnet 127.0.0.1 3306
bash: telnet: command not found...

しかし、接続できなかったことがわかります。そこで、上記の前のステップの詳細を含む、次のステップを実行しました。

[root@localhost etc]# systemctl status mysqld -l
mysqld.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

Dec 15 15:38:17 localhost.localdomain systemd[1]: Failed to start MySQL Community Server.
Dec 15 15:38:17 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
Dec 15 15:38:17 localhost.localdomain systemd[1]: mysqld.service holdoff time over, scheduling restart.
Dec 15 15:38:17 localhost.localdomain systemd[1]: Stopping MySQL Community Server...
Dec 15 15:38:17 localhost.localdomain systemd[1]: Starting MySQL Community  Server...
Dec 15 15:38:17 localhost.localdomain mysqld_safe[12886]: 141215 15:38:17 mysqld_safe Logging to '/var/log/mysqld.log'.
Dec 15 15:38:17 localhost.localdomain mysqld_safe[12886]: 141215 15:38:17 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Dec 15 15:38:17 localhost.localdomain mysqld_safe[12886]: 141215 15:38:17 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Dec 15 15:38:25 localhost.localdomain systemd[1]: Stopping MySQL Community Server...
Dec 15 15:38:25 localhost.localdomain systemd[1]: Stopped MySQL Community Server.
[root@localhost etc]# systemctl start mysqld
Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
[root@localhost etc]# yum install mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: repos.lax.quadranet.com
 * epel: mirrors.kernel.org
 * extras: repos.lax.quadranet.com
 * updates: repos.lax.quadranet.com
Package mysql-community-client-5.6.22-2.el7.x86_64 already installed and latest version
Nothing to do
1
CodeMed

ソケットへのパスを確認するには、mysqldプロセスが開いているlsofを使用できます。

# lsof -U -c mysqld -a
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
mysqld  18149 mysql   16u  unix 0xffff880037a7a700      0t0 126146 /var/lib/mysql/mysql.sock
2
akuzminsky

開いた vi /etc/my.cnfと文字列を追加:

bind-address        = localhost

これ ユーザーAnupRajで有効 関連するスタックオーバーフローのQ&Aで ソケット '/var/mysql/mysql.sock'(38)を介してローカルMySQLサーバーに接続できません

0
Николай