Linux下安裝初始化完MySQL數據庫之後,使用mysqld_safe啓動mysql數據庫,如下發現,啓動失敗
[root@SVNServer bin]# ./mysqld_safe –user=mysql&
或
[root@SVNServer bin]# /etc/init.d/mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/AY14020816093477605eZ.pid).
重啓mysql會拋出上面紅色字體的錯誤。
上面只能看到mysql啓動失敗,具體的原因,需要查看數據庫目錄下的.err文件,查看.err文件,內容如下:
140726 00:18:10 mysqld_safe mysqld from pid file /data/mysql/AY14020816093477605eZ.pid ended
140726 00:31:19 mysqld_safe Starting mysqld daemon with databases from /data/mysql
/usr/local/mysql/bin/mysqld: File ‘./mysql-bin.index' not found (Errcode: 13)
140726 0:31:19 [ERROR] Aborting
140726 0:31:19 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
紅色字標出來的就是這次錯誤報告,errcode13,一般就是權限問題,mysql用戶是否對數據庫目錄內的所有文件具有寫的權限,查看一下權限,修改MySQL目錄的用戶和用戶組權限:
chown -R mysql:mysql /usr/local/mysql
在查看/usr/local/mysql目錄權限,如下圖
發現問題了,果然是權限問題,下面排錯就簡單了,將data目錄的有所者賦給mysql用戶
redhat系統中可以使用 :chown mysql.mysql -R /usr/local/mysql
CentOS系統中可以使用:chown mysql:mysql -R /usr/local/mysql
好了,現在再啓動一下mysql,如下圖,沒有報錯
[root@SVNServer bin]# /etc/init.d/mysqld start
如果仍然報錯,可能就是 /usr/local/mysql 目錄的權限設置問題,設置其權限如下:
chmod 755 /usr/local/mysql
設置後查看權限如下: ll /usr/local/mysql
drwxr-xr-x 9 mysql mysql 12288 7月 26 09:50 mysql
試試,能不能連接,如下圖,OK
解決方法仍然是:
1)給MYSQL數據庫數據目錄權限:chown -R mysql:mysql 目錄名稱
2)務必保證MYSQL的進程是已經關閉了的;
另外要注意的地方就是:ib_*, mysql-bin-*, *.err(log文件)以及master-info和relay-info文件都是可以刪除的,相當於重新初始化數據庫的數據,但是前提是:
1)操作前要先關掉MYSQL的進程;
2)刪掉文件後要重新啓動MYSQL,如果有異常,請自行查看日誌找問題,一般都比較好定位和解決。