エラー 2002 (HY000): ソケットを介してローカルMySQLサーバーに接続できません

mysqlにログインする必要があります

[root @ localhost〜]# mysql -uroot -p123456

警告: コマンドラインインターフェイスでのパスワードの使用は安全でない可能性があります.

エラー 2002 (HY000): ソケット ‘/var/lib/mysql/mysql.sockを介してローカルMySQLサーバーに接続できません’ (2)

パス/ var / lib / mysql /にmysql.sockがないことがわかりました.

mysql.sockのパスを確認してください

[root @ localhost〜]# ps -ef | grep mysql

ルート 23408 1 0 06:01 pts / 0 00:00:00 /bin / sh / usr / bin / mysqld_safe –datadir = / sctsapp / data / mysql–pidファイル

= / data / mysql / localhost.localdomain.pid

mysql 24029 23408 0 06:01 pts / 0 00:00:00 /usr / sbin / mysqld –basedir = / usr –datadir = / data / mysql

–plugin-dir = / usr / lib64 / mysql / plugin –user = mysql –log-error = / var / log / mysqld.log

–pid-file = / data / mysql / localhost.localdomain.pid –ソケット=/data / mysql / mysql.sock

ルート 24784 8954 0 06:07 pts / 0 00:00:00 grep mysql

/ var / pool / mail / rootに新着メールがあります

ただし、クライアントはmysqlにログインするときにパス/ var / lob / mysqlでmysql.sockを検索します, したがって、クライアントはそれを見つけることができません.

 

解決

1. mysqlにログインするときにmysq.sockパスを指定します.

[root @ localhost〜]# mysql -uroot -px9uLCqlkAfez9p6m -S /data/mysql/mysql.sock

警告: コマンドラインインターフェイスでのパスワードの使用は安全でない可能性があります.

MySQLモニターへようこそ. コマンドはで終わります ; または g.

MySQL接続IDは 128

サーバーバージョン: 5.6.21 MySQL Community Server (LPG)

著作権 (c) 2000, 2014, Oracleおよび/またはその関連会社. 全著作権所有.

Oracleは、OracleCorporationおよび/またはその登録商標です。

アフィリエイト. その他の名前は、それぞれの所有者の商標である可能性があります.

「help」と入力します;’ または ‘ h’ 助けを求めて. 「 c」と入力します’ 現在の入力ステートメントをクリアします.

mysql>

 

2. 追加 [クライアント] my.cnfのドメイン, mysql.sockの実際のパスを指定します

vim /etc/my.cnf

[クライアント]

ポート= 3306

ソケット= / data / mysql / mysql.sock

保存して終了,mysqlの再起動, mysqlに再度ログインします

[root @ localhost〜]# service mysql restart

MySQLのシャットダウン…. 成功!

MySQLの起動. 成功!

[root @ localhost〜]# mysql -uroot -p123456

警告: コマンドラインインターフェイスでのパスワードの使用は安全でない可能性があります.

MySQLモニターへようこそ. コマンドはで終わります ; または g.

MySQL接続IDは 1

サーバーバージョン: 5.6.21 MySQL Community Server (LPG)

著作権 (c) 2000, 2014, Oracleおよび/またはその関連会社. 全著作権所有.

Oracleは、OracleCorporationおよび/またはその登録商標です。

アフィリエイト. その他の名前は、それぞれの所有者の商標である可能性があります.

「help」と入力します;’ または ‘ h’ 助けを求めて. 「 c」と入力します’ 現在の入力ステートメントをクリアします.

mysql>

 

3. mysql.sockのリンクを作成します, mysql.sockパスを指定せずにmysqlにログインできます.

ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock

 

アタッチメント:

mysql.sockの噴水

mysqld_safeの起動時に、mysqlはデフォルトパス/ tmp /にsockファイルを生成します.

このファイルは、クライアントとサーバー間の接続に使用されます。mysql.sockを削除するとします。

間違って.

[root @ 10-186-20-46ローカル]# cd / tmp

[root @ 10-186-20-46 tmp]# 合計ll 8

-rw-r–r– 1 ルートルート 1201 6月 25 09:59 my.cnf srwxrwxrwx 1 mysql mysql 0 6月 25 09:46 mysql.sock

-rw-rw-r– 1 zabbix zabbix 4 6月 16 15:43 zabbix_agentd.pid

[root @ 10-186-20-46 tmp]# rm mysql.sock rm: ソケットを取り外します

「mysql.sock」? Y

[root @ 10-186-20-46 tmp]# mysql -uroot-p入力

パスワード: エラー 2002 (HY000): ローカルMySQLサーバーに接続できません

ソケット「/tmp/mysql.sock」を介して (2)

[root @ 10-186-20-46 tmp]#

ローカルホストからmysqlにログインできないことがわかります.

1つのサーバーに複数のmysqlをインストールした場合, そのため、多くのmysqlxxxx.sockが作成されます

異なるmysqld_safeが開始されたときのパス/ tmp /内. ただし、指定できるmysqlxxxx.sockのパス

my.cnf。にインストールしましたが、クライアントを1つだけインストールしました, したがって、別のmysqlサービスにログインする場合, 君は

mysqlxxxx.sockの別のパスを指定する必要があります.

注意:

多くのmysqlサービスが同じユーザーとパスワードを使用する場合, そしてあなたは1つのmysqlだけにログインしたい

service。間違ったサービスにログインしないように、mysqlxxxx.sockのパスに注意する必要があります。.

概して, 同じサーバーで多数のmysqlサービスを実行している場合は、パスワードを変えておくとよいでしょう。.

返信を残します