提示:
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]
檢查了MySQL的日誌(cat /var/log/mysqld.log)發現提示一個錯誤([ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist),如圖:
猜測可能是MySQL的預設資料庫沒正常安裝,但卸載MySQL(yum remove mysql-server)再重裝(yum install mysql-server)還是不行,現象和原來一樣。後來找到一個專門安裝預設資料庫的命令:mysql_install_db,執行之後,再啟動MySQL(/etc/init.d/mysqld start)終於看到久違的OK:
代碼如下 |
複製代碼 |
# /etc/init.d/mysqld start Starting MySQL: [ OK ] |
問題二
用safe_mysqldq啟動的時候,出現
Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
最終解決方案如下:
在mysql的安裝目錄下,我的是/usr/local/mysql
代碼如下 |
複製代碼 |
./scripts/mysql_install_db --usrer=mysql --datadir=/usr/local/mysql/data/ |
原因是重裝的時候資料目錄不一致導致
問題三
說一下我解決的過程:
按照mysql的安裝步驟:
代碼如下 |
複製代碼 |
shell> groupadd mysql shell> useradd -g mysql mysql shell> gunzip < mysql-VERSION.tar.gz | tar -xvf - shell> cd mysql-VERSION shell> ./configure --prefix=/usr/local/mysql shell> make shell> make install shell> scripts/mysql_install_db --user=mysql shell> chown -R root /usr/local/mysql shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysql shell> cp support-files/my-medium.cnf /etc/my.cnf shell> /usr/local/mysql/bin/mysqld_safe --user=mysql & |
這樣標準進行下來是沒有問題的,但在最後一步啟動mysql的時候我希望將資料庫的資料檔案放在另外一個目錄下面,啟動命令修改為:
代碼如下 |
複製代碼 |
shell>/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/u01/mysql/mysql_error/error --datadir=/u01/mysql/data |
這個時候就出現問題了, 因為在進行初始化資料庫許可權表的那一步的時候預設建立的許可權表在預設目錄/usr/local/mysql/var下面,這就造成了,上面的錯誤無法找到 許可權表:Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
解決辦法 在運行初始化許可權表的時候使用增加參數--datadir ,命令格式為:
代碼如下 |
複製代碼 |
shell> scripts/mysql_install_db --user=mysql --datadir=/u01/mysql/data |