本文為轉載內容,感謝原作者。原文出自:http://zhaoxiaoru39.blog.163.com/blog/static/609552192012511104730115/
我遇到的問題是:在navicat mysql中從一台mysql服務器(正式)上傳輸數據到另外一台服務器(模擬數據庫)。是整庫傳輸。將模擬數據庫中某一個庫的數據文件夾重命名之後,重新創建一個新的數據庫,再進行數據傳輸。傳輸完成之後,發現模擬上新建的數據庫的表變為了只讀。 通過按照下面文章的類似步驟,解決了問題。
這兩天在進行網站搬家,這次網站搬家采用直接打包mysql數據庫和網頁文件的形式進行遷移,上傳好mysql data目錄裡面的網站數據庫至VPS上mysql存放數據庫的目錄裡面,解壓就行。我的VPS存放數據庫的路徑是 /usr/local/mysql/var。
上傳好網站數據,解壓,配置好數據庫鏈接參數就行,網站就能正常連接上了,我本以為這已 經是順利遷移完成了,但後來操作的時候,發現只能讀取數據庫的內容,不能更改寫入任何信息,提示#1036 – Table ‘* ‘ is read only (*號為任意表),也就是說表只有只讀屬性。
通過SSH,給數據庫文件777權限,admin是我的數據庫文件夾
第一步: chmod -R 0777 /usr/local/mysql/var/admin/
給數據庫目錄的所屬用戶和組改為MySQL
1 第二步: chown -R mysql:mysql admin
但是這樣還不能更改數據庫,首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 裡面,還需要運行以下命令:
1 第三步: ./mysqladmin -u root -p flush-tables
之後輸入root賬號的密碼,馬上就好了,沒有任何任何提示,然後測試一下,能正常讀寫,搬家也就順利完成。