[MySQL] ERROR 2002(HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.
4293 ワード
1故障説明
テスト環境Cactiページの登録に失敗して、saは私を探して問題を調べて、saは私を探してDBの故障かどうかを見ます
2 dbサーバcheckに行きます.
[root@xxxx mysqldata]# ps-eaf|grep mysql
root 1422 12582 0 03:48 pts/13 00:00:00 grep mysql
root 1961 1 0 Sep02 ? 00:00:03/bin/sh/usr/bin/mysqld_safe--datadir=/opt/mysqldata --socket=/var/lib/mysql/mysql.sock--pid-file=/opt/mysqldata/mysqld.pid --basedir=/usr --user=mysql
mysql 15117 1961 3 03:44 ? 00:00:08/usr/libexec/mysqld--basedir=/usr --datadir=/opt/mysqldata --user=mysql--log-error=/opt/mysqldata/mysqld.log --pid-file=/opt/mysqldata/mysqld.pid--socket=/var/lib/mysql/mysql.sock
root 31480 6972 0 Sep17 pts/8 00:00:00 mysql -uroot -px xxxxxxx
[root@xxxx mysqldata]#
OK、mysqlプロセスはすべて正常で、バックグラウンドで運行していて、killに落ちていません.
3 rootでcheckの中のmysqlスレッドにログインする
[root@xxxx mysqldata]# mysql-uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (111)
[root@eanltrsutl001 mysqldata]#
4 mysqlのerrorログを表示する
2の手順ですでに見られた--log-error=/opt/mysqldata/mysqld.logパラメータなのでerrorログファイル/opt/mysqldata/mysqldを開きます.log
[root@xxxx mysqldata]# tail –f/opt/mysqldata/mysqld.log
130930 3:39:50 InnoDB: Started; logsequence number 3 3403486393
130930 3:39:50 [ERROR]/usr/libexec/mysqld: Error writing file'/opt/mysqldata/mysqld.pid' (Errcode: 28)
130930 3:39:50 [ERROR] Can't start server: can't create PID file: No space lefton device
130930 03:39:50 mysqld_safe Number ofprocesses running now: 0
130930 03:39:50 mysqld_safe mysqldrestarted
130930 3:39:50 InnoDB: Initializingbuffer pool, size = 15.0G
130930 3:39:51 InnoDB: Completedinitialization of buffer pool
InnoDB: The log sequence number in ibdatafiles does not match
InnoDB: the log sequence number in theib_logfiles!
130930 3:39:51 InnoDB: Database was notshut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information fromthe .ibd files...
InnoDB: Restoring possible half-writtendata pages from the doublewrite
InnoDB: buffer...
130930 3:39:51 InnoDB: Started; logsequence number 3 3403486393
130930 3:39:51 [ERROR]/usr/libexec/mysqld: Errorwriting file '/opt/mysqldata/mysqld.pid' (Errcode: 28)
130930 3:39:51 [ERROR] Can't start server: can'tcreate PID file: No space left on device
130930 03:39:51 mysqld_safe Number ofprocesses running now: 0
130930 03:39:51 mysqld_safe mysqldrestarted
130930 3:39:51 InnoDB: Initializingbuffer pool, size = 15.0G
あるかどうか見ましたが、No space left ondeviceは、ディスクがいっぱいでwroteができないに違いありません.
5ディスク領域をチェックする
[root@xxxx mysqldata]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/Sys-root 1008M 513M 445M 54%/
tmpfs 15G 0 15G 0%/dev/shm
/dev/mapper/Sys-applog
50G 14G 34G 29%/applog
/dev/vda1 194M 33M 152M 18%/boot
/dev/mapper/Sys-home 2.0G 68M 1.9G 4%/home
/dev/mapper/Sys-opt 20G 19G 0 100%/opt
/dev/mapper/Sys-tmp 7.9G 3.4G 4.2G 45%/tmp
/dev/mapper/Sys-usr 2.0G 1.9G 41M 98%/usr
/dev/mapper/Sys-var 7.9G 4.4G 3.2G 58%/var
/dev/mapper/Sys-crash
2.0G 68M 1.9G 4%/var/crash
/dev/mapper/Sys-log 7.9G 1.3G 6.3G 17%/var/log
/dev/mapper/Sys-vtmp 1008M 34M 924M 4%/var/tmp
//10.15.41.252/share 466G 23G 444G 5%/applog/winshare
やはりディスクがいっぱい、/optディレクトリが100%になったので、急いでsaにディスクスペースのクリーンアップを通知し、saはディスクを40 Gに拡張しました.
6 rootログインcheck mysql db状態
PS:OK、はい、ディスクがいっぱいになったら、ディスクのスペースを大きくすれば、mysqlは自動的に各種clients接続操作を回復します.
7善後
このサーバーはテストサーバーのcactiモニタリングアプリケーションdbサーバーなので、dbのインストールが完了したら、saにディスクモニタリングを追加するように注意しますが、dev部門は大丈夫だと言っていますが、saは忙しくて他のことでディスクモニタリングを追加する時間がありません.
ディスクモニタリングを追加するにはsaにタイムリーに注意しなければならないようですが、devの経験も100%頼りにならないわけではありません.
テスト環境Cactiページの登録に失敗して、saは私を探して問題を調べて、saは私を探してDBの故障かどうかを見ます
2 dbサーバcheckに行きます.
[root@xxxx mysqldata]# ps-eaf|grep mysql
root 1422 12582 0 03:48 pts/13 00:00:00 grep mysql
root 1961 1 0 Sep02 ? 00:00:03/bin/sh/usr/bin/mysqld_safe--datadir=/opt/mysqldata --socket=/var/lib/mysql/mysql.sock--pid-file=/opt/mysqldata/mysqld.pid --basedir=/usr --user=mysql
mysql 15117 1961 3 03:44 ? 00:00:08/usr/libexec/mysqld--basedir=/usr --datadir=/opt/mysqldata --user=mysql--log-error=/opt/mysqldata/mysqld.log --pid-file=/opt/mysqldata/mysqld.pid--socket=/var/lib/mysql/mysql.sock
root 31480 6972 0 Sep17 pts/8 00:00:00 mysql -uroot -px xxxxxxx
[root@xxxx mysqldata]#
OK、mysqlプロセスはすべて正常で、バックグラウンドで運行していて、killに落ちていません.
3 rootでcheckの中のmysqlスレッドにログインする
[root@xxxx mysqldata]# mysql-uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (111)
[root@eanltrsutl001 mysqldata]#
4 mysqlのerrorログを表示する
2の手順ですでに見られた--log-error=/opt/mysqldata/mysqld.logパラメータなのでerrorログファイル/opt/mysqldata/mysqldを開きます.log
[root@xxxx mysqldata]# tail –f/opt/mysqldata/mysqld.log
130930 3:39:50 InnoDB: Started; logsequence number 3 3403486393
130930 3:39:50 [ERROR]/usr/libexec/mysqld: Error writing file'/opt/mysqldata/mysqld.pid' (Errcode: 28)
130930 3:39:50 [ERROR] Can't start server: can't create PID file: No space lefton device
130930 03:39:50 mysqld_safe Number ofprocesses running now: 0
130930 03:39:50 mysqld_safe mysqldrestarted
130930 3:39:50 InnoDB: Initializingbuffer pool, size = 15.0G
130930 3:39:51 InnoDB: Completedinitialization of buffer pool
InnoDB: The log sequence number in ibdatafiles does not match
InnoDB: the log sequence number in theib_logfiles!
130930 3:39:51 InnoDB: Database was notshut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information fromthe .ibd files...
InnoDB: Restoring possible half-writtendata pages from the doublewrite
InnoDB: buffer...
130930 3:39:51 InnoDB: Started; logsequence number 3 3403486393
130930 3:39:51 [ERROR]/usr/libexec/mysqld: Errorwriting file '/opt/mysqldata/mysqld.pid' (Errcode: 28)
130930 3:39:51 [ERROR] Can't start server: can'tcreate PID file: No space left on device
130930 03:39:51 mysqld_safe Number ofprocesses running now: 0
130930 03:39:51 mysqld_safe mysqldrestarted
130930 3:39:51 InnoDB: Initializingbuffer pool, size = 15.0G
あるかどうか見ましたが、No space left ondeviceは、ディスクがいっぱいでwroteができないに違いありません.
5ディスク領域をチェックする
[root@xxxx mysqldata]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/Sys-root 1008M 513M 445M 54%/
tmpfs 15G 0 15G 0%/dev/shm
/dev/mapper/Sys-applog
50G 14G 34G 29%/applog
/dev/vda1 194M 33M 152M 18%/boot
/dev/mapper/Sys-home 2.0G 68M 1.9G 4%/home
/dev/mapper/Sys-opt 20G 19G 0 100%/opt
/dev/mapper/Sys-tmp 7.9G 3.4G 4.2G 45%/tmp
/dev/mapper/Sys-usr 2.0G 1.9G 41M 98%/usr
/dev/mapper/Sys-var 7.9G 4.4G 3.2G 58%/var
/dev/mapper/Sys-crash
2.0G 68M 1.9G 4%/var/crash
/dev/mapper/Sys-log 7.9G 1.3G 6.3G 17%/var/log
/dev/mapper/Sys-vtmp 1008M 34M 924M 4%/var/tmp
//10.15.41.252/share 466G 23G 444G 5%/applog/winshare
やはりディスクがいっぱい、/optディレクトリが100%になったので、急いでsaにディスクスペースのクリーンアップを通知し、saはディスクを40 Gに拡張しました.
6 rootログインcheck mysql db状態
[root@xxxx mysqldata]# mysql-uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)
[root@xxxx mysqldata]#
PS:OK、はい、ディスクがいっぱいになったら、ディスクのスペースを大きくすれば、mysqlは自動的に各種clients接続操作を回復します.
7善後
このサーバーはテストサーバーのcactiモニタリングアプリケーションdbサーバーなので、dbのインストールが完了したら、saにディスクモニタリングを追加するように注意しますが、dev部門は大丈夫だと言っていますが、saは忙しくて他のことでディスクモニタリングを追加する時間がありません.
ディスクモニタリングを追加するにはsaにタイムリーに注意しなければならないようですが、devの経験も100%頼りにならないわけではありません.