mysql之 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11

張衝andy發表於2017-06-03
問題描述:啟動MySQL後,出現連線不上,報 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
[root@mysql01 ~]# service mysql start
Starting MySQL                                             [  OK  ]
[root@mysql01 ~]# mysql -uroot -poracle
Warning: Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@mysql01 ~]# ll /var/lib/mysql/mysql.sock
ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory
說明:
mysqld.sock是mysql啟動以後自動生成的檔案,關閉MySQL服務後,這個檔案又會被刪除。如果MySQL啟動異常,就有可能不生成這個檔案,登入的時候就會出現你這個錯誤。
[root@mysql01 ~]# cd /var/lib/mysql
[root@mysql01 mysql]# ls
auto.cnf   ib_logfile0  mysql01.err          RPM_UPGRADE_MARKER-LAST
binarylog  ib_logfile1  performance_schema   test
ibdata1    mysql        RPM_UPGRADE_HISTORY
[root@mysql01 mysql]# vi mysql01.err 
錯誤日誌報錯如下:
2017-06-04 04:08:47 2835  
2017-06-04 04:08:47 2835 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

分析:
1、磁碟空間目錄不足
2、ibdata1 檔案被其他的程式佔用
3、 等

解決過程:
1、 -- 檢視磁碟空間情況
[root@mysql01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        35G  7.8G   26G  24% /
tmpfs           699M   72K  699M   1% /dev/shm
/dev/sda1       2.9G  4.5M  2.7G   1% /tmp
2、 --InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
已經指出其他的執行緒啟動已經在執行無法再次建立相關的讀檔案程式的許可權,也就是說,現有的ibddata檔案已經有人讀取了,無法再次啟動!
-- 檢視系統 mysql 相關程式
[root@mysql01 ~]# ps aux |grep mysql*
root       1742  0.0  0.0 108336   552 ?        S    03:59   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/mysql01.pid
mysql      1930  0.2 37.8 1170956 541948 ?      Sl   03:59   0:03 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/mysql01.err --pid-file=/var/lib/mysql/mysql01.pid --port=3306
root       3117  0.0  0.0 103312   876 pts/2    S+   04:29   0:00 grep mysql*
-- kill -9 殺掉
[root@mysql01 ~]# kill -9 1930
[root@mysql01 ~]# ps aux |grep mysql*
root       3186  0.0  0.0 103308   852 pts/2    S+   04:29   0:00 grep mysql*
-- 啟動
[root@mysql01 ~]# service mysql start
Starting MySQL..                                           [  OK  ]
[root@mysql01 ~]# mysql -uroot -poracle
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 
說明:恢復正常


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2140254/,如需轉載,請註明出處,否則將追究法律責任。

相關文章