mysql中Table is read only的解決方法小結(jié)
更新時間:2013年01月20日 23:15:37 作者:
本文章總結(jié)了關(guān)于在linux與windows中 mysql出現(xiàn)Table is read only解決辦法總結(jié),有需要的朋友可參考一下
如果是使用中的數(shù)據(jù)庫突然出現(xiàn)些類問題
在Linux下面執(zhí)行下面命令就可以了,當然你要找到你的mysql目錄
linux中
/usr/local/mysql/bin/mysqladmin -u root -p flush-tables
windows中
可以在cmd中執(zhí)行l(wèi)ush-tables
也可以在phpmyadmin 直利用修復表進行修改
如果是導入還原數(shù)據(jù)
,所以將該數(shù)據(jù)庫文件夾下面所有表文件chmod成777,chown成”_mysql”,但這次問題更嚴重,drupal里面現(xiàn)實table crached。沒辦法,馬上Google,發(fā)現(xiàn)其實解決起來挺容易的。
首先,找到mysqladmin所在位置,一般都在mysql/bin下面,然后運行一下命令:
./mysqladmin -u root -p flush-tables
之后輸入root賬號的密碼,馬上就好了,沒有任何任何提示,重新打開drupal,一切正常。
通過這次,也找到了數(shù)據(jù)庫文件的正確權(quán)限設置:data下面數(shù)據(jù)庫文件夾700,表文件660,所有文件都應owned by mysql。
以下也是從window數(shù)據(jù)庫轉(zhuǎn)移到linux服務器出的問題
一個Discuz論壇,原來架在windows下,用的是GBK編碼,MYSQL版本是5.0的。
現(xiàn)在需要轉(zhuǎn)移到Linux下,我本來建議用mysqldump導出的方法,但同事希望直接用data目錄下的數(shù)據(jù)庫目錄。
那就先用移目錄的方式試下,在新服務器創(chuàng)建數(shù)據(jù)庫,然后將舊的目錄移過來。
在mysql中,Select之類的都正常,但在網(wǎng)頁程序中提示:Table 'cdb_posts' is read only
給數(shù)據(jù)庫目錄的所屬用戶和組改為mysql,并加上777的權(quán)限,還是一樣提示。
程序中使用root連接,也是一樣的提示。
想用myisamchk來檢查一下,也提示read only。
最終在這里找到了解決方法:http://www.mysqltalk.org/re-the-table-is-read-only-vt154092.html
引用
I just encountered a similar problem on one of my production servers
this morning. (I'm still investigating the cause.) After doing a
quick bit of Google-searching, this solved my problem:
mysqladmin -u <username> -p flush-tables
By the way: All directories in /var/lib/mysql should have 700
permissions (owned my the mysql user) and everything within those
directories should be 660 (owned by the mysql user and mysql group).
運行flush-tables后,read only問題解決:)
然后發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和內(nèi)容還是有問題,用myisamchk查錯無效,后來用mysqldump導,不過也還是碰到了一大堆問題,由于要轉(zhuǎn)的數(shù)據(jù)庫挺大,化了很長時間,最終沒有繼續(xù)下去。
了解了一些知識點,記錄一下:
就是mysql5導出的有default-charact的設置,mysql4不支持,需要加skip-opt參數(shù),如:
mysqldump -uroot -p --default-character-set=gbk -skip-opt databse > hx.sql
參考文章:Mysql 數(shù)據(jù)庫字符集轉(zhuǎn)換
最后找了臺mysql5的服務器,用mysqldump導出,mysql導入,一次成功!
發(fā)現(xiàn)用mysqldump導出一個表,300w多條記錄,用了才4分多鐘,每秒處理1w多記錄,快??!導入時,差不多用了十幾分鐘,每秒導入幾千條也很快了:)
在Linux下面執(zhí)行下面命令就可以了,當然你要找到你的mysql目錄
linux中
復制代碼 代碼如下:
/usr/local/mysql/bin/mysqladmin -u root -p flush-tables
windows中
可以在cmd中執(zhí)行l(wèi)ush-tables
也可以在phpmyadmin 直利用修復表進行修改
如果是導入還原數(shù)據(jù)
,所以將該數(shù)據(jù)庫文件夾下面所有表文件chmod成777,chown成”_mysql”,但這次問題更嚴重,drupal里面現(xiàn)實table crached。沒辦法,馬上Google,發(fā)現(xiàn)其實解決起來挺容易的。
首先,找到mysqladmin所在位置,一般都在mysql/bin下面,然后運行一下命令:
復制代碼 代碼如下:
./mysqladmin -u root -p flush-tables
之后輸入root賬號的密碼,馬上就好了,沒有任何任何提示,重新打開drupal,一切正常。
通過這次,也找到了數(shù)據(jù)庫文件的正確權(quán)限設置:data下面數(shù)據(jù)庫文件夾700,表文件660,所有文件都應owned by mysql。
以下也是從window數(shù)據(jù)庫轉(zhuǎn)移到linux服務器出的問題
一個Discuz論壇,原來架在windows下,用的是GBK編碼,MYSQL版本是5.0的。
現(xiàn)在需要轉(zhuǎn)移到Linux下,我本來建議用mysqldump導出的方法,但同事希望直接用data目錄下的數(shù)據(jù)庫目錄。
那就先用移目錄的方式試下,在新服務器創(chuàng)建數(shù)據(jù)庫,然后將舊的目錄移過來。
在mysql中,Select之類的都正常,但在網(wǎng)頁程序中提示:Table 'cdb_posts' is read only
給數(shù)據(jù)庫目錄的所屬用戶和組改為mysql,并加上777的權(quán)限,還是一樣提示。
程序中使用root連接,也是一樣的提示。
想用myisamchk來檢查一下,也提示read only。
最終在這里找到了解決方法:http://www.mysqltalk.org/re-the-table-is-read-only-vt154092.html
引用
I just encountered a similar problem on one of my production servers
this morning. (I'm still investigating the cause.) After doing a
quick bit of Google-searching, this solved my problem:
mysqladmin -u <username> -p flush-tables
By the way: All directories in /var/lib/mysql should have 700
permissions (owned my the mysql user) and everything within those
directories should be 660 (owned by the mysql user and mysql group).
運行flush-tables后,read only問題解決:)
然后發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和內(nèi)容還是有問題,用myisamchk查錯無效,后來用mysqldump導,不過也還是碰到了一大堆問題,由于要轉(zhuǎn)的數(shù)據(jù)庫挺大,化了很長時間,最終沒有繼續(xù)下去。
了解了一些知識點,記錄一下:
就是mysql5導出的有default-charact的設置,mysql4不支持,需要加skip-opt參數(shù),如:
mysqldump -uroot -p --default-character-set=gbk -skip-opt databse > hx.sql
參考文章:Mysql 數(shù)據(jù)庫字符集轉(zhuǎn)換
最后找了臺mysql5的服務器,用mysqldump導出,mysql導入,一次成功!
發(fā)現(xiàn)用mysqldump導出一個表,300w多條記錄,用了才4分多鐘,每秒處理1w多記錄,快??!導入時,差不多用了十幾分鐘,每秒導入幾千條也很快了:)
您可能感興趣的文章:
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
- mysql error:#1062 Duplicate entry ‘***′ for key 1問題解決方法
- Mysql啟動中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的問題
- winxp 安裝MYSQL 出現(xiàn)Error 1045 access denied 的解決方法
- MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)問題的解決
- Linux下MySql 1036 錯誤碼解決(1036: Table ''xxxx'' is read only)
相關(guān)文章
如何解決局域網(wǎng)內(nèi)mysql數(shù)據(jù)庫連接慢
通過內(nèi)網(wǎng)連另外一臺機器的mysql服務, 確發(fā)現(xiàn)速度N慢! 等了大約幾十秒才等到提示輸入密碼。非常急人,有沒有辦法可以解決局域網(wǎng)內(nèi)mysql數(shù)據(jù)庫連接慢呢?下面小編帶領(lǐng)大家來解決此問題,感興趣的朋友一起看看吧2015-09-09
如何給mysql數(shù)據(jù)庫重新命名(操作步驟)
這篇文章主要介紹了如何給mysql數(shù)據(jù)庫重新命名,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05

