mysql 執(zhí)行腳本中遇到到權(quán)限問(wèn)題
我將s9當(dāng)眾原來(lái)的mysql4.0刪除后,重新裝了個(gè)mysql5.0,啟動(dòng)過(guò)程中報(bào)一下錯(cuò)誤,啟動(dòng)失敗,查了一下群里面的老帖子也沒(méi)有個(gè)具體的明確說(shuō)明,還請(qǐng)那位高手說(shuō)明一下怎么解決。謝謝
error 日志當(dāng)中的記錄:
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
從發(fā)了帖子,只有人看,沒(méi)有人回復(fù),看到這種情況只能自己解決問(wèn)題了,自己動(dòng)手豐衣足食嗎, 嗯。。。 你還別說(shuō),還真讓我解決了問(wèn)題,人啊,都是逼出來(lái)的,....沒(méi)有辦法,這個(gè)問(wèn)題對(duì)于高手可能是很簡(jiǎn)單的問(wèn)題 ,但是對(duì)我第一次摸mysql,確實(shí)怎么也弄不懂的問(wèn)題。
好了閑話不多說(shuō) 說(shuō)一下我解決的過(guò)程:
按照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 &
這樣標(biāo)準(zhǔn)進(jìn)行下來(lái)是沒(méi)有問(wèn)題的,但在最后一步啟動(dòng)mysql的時(shí)候我希望將數(shù)據(jù)庫(kù)的數(shù)據(jù)文件放在另外一個(gè)目錄下面,啟動(dòng)命令修改為:
shell>/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/u01/mysql/mysql_error/error --datadir=/u01/mysql/data
這個(gè)時(shí)候就出現(xiàn)問(wèn)題了, 因?yàn)樵谶M(jìn)行初始化數(shù)據(jù)庫(kù)權(quán)限表的那一步的時(shí)候默認(rèn)創(chuàng)建的權(quán)限表在默認(rèn)目錄/usr/local/mysql/var下面,這就造成了,上面的錯(cuò)誤無(wú)法找到權(quán)限表:Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
解決辦法 在運(yùn)行初始化權(quán)限表的時(shí)候使用增加參數(shù)--datadir ,命令格式為:
shell> scripts/mysql_install_db --user=mysql --datadir=/u01/mysql/data
這樣問(wèn)題就解決了。
這樣問(wèn)題同樣也會(huì)出現(xiàn) 你將自己的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件修改為別的目錄的時(shí)候,因?yàn)槟銢](méi)有在相應(yīng)的目錄下創(chuàng)建數(shù)據(jù)庫(kù)權(quán)限表,解決辦法就是你重新運(yùn)行mysql_install_db 文件,重新生成數(shù)據(jù)庫(kù)權(quán)限表,但是相應(yīng)的你也要重新建里用戶(hù),以及設(shè)置權(quán)限; 第二個(gè)辦法應(yīng)該將老的權(quán)限表的文件拷貝倒相應(yīng)數(shù)據(jù)庫(kù)表對(duì)應(yīng)的目錄先即可,但是第二個(gè)辦法我沒(méi)有用過(guò)只是根據(jù)自己的想象猜的。如果有高手請(qǐng)給確認(rèn)一下是否正確