mysql啟動提示mysql.host 不存在,啟動失敗的解決方法
2024-07-24 12:44:12
供稿:網友
error 日志當中的記錄:
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
從發了帖子,只有人看,沒有人回復,看到這種情況只能自己解決問題了,自己動手豐衣足食嗎, 嗯。。。 你還別說,還真讓我解決了問題,人啊,都是逼出來的,....沒有辦法,這個問題對于高手可能是很簡單的問題 ,但是對我第一次摸mysql,確實怎么也弄不懂的問題。
好了閑話不多說 說一下我解決的過程:
按照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
這樣問題就解決了。
這樣問題同樣也會出現 你將自己的數據庫的數據文件修改為別的目錄的時候,因為你沒有在相應的目錄下創建數據庫權限表,解決辦法就是你重新運行mysql_install_db 文件,重新生成數據庫權限表,但是相應的你也要重新建里用戶,以及設置權限; 第二個辦法應該將老的權限表的文件拷貝倒相應數據庫表對應的目錄先即可,但是第二個辦法我沒有用過只是根據自己的想象猜的。如果有高手請給確認一下是否正確
MySQL 提示服務啟動失敗的解決辦法
以前經常碰到這個問題,但都是用以下辦法處理的,
先在添加刪除程序里卸載MySQL,然后把原MySQL的目錄改名,再打開注冊表用F3循環查找“MySQL”,全部刪除,最后重啟機器再重新裝MySQL都可以搞定,但今天遇到的問題比特殊,按上面和下面的辦法全試過了依然不行,安裝到最后一到啟動那里就失敗了,把所有正在運行的服務和軟件全部關掉,又連續重啟重裝了N次都是到那里停止,后來干脆換個高版本兒試下,這次全部刪除后重裝到最后那一步時還是等了很長時間,最后竟然成功了,現在記錄下來,以后再遇到此類問題不用再郁悶了!