エラー 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サービスを実行している場合は、パスワードを変えておくとよいでしょう。.