這次網站搬家採用直接打包mysql資料庫和網頁檔案的形式進行遷移,上傳好mysql data目錄裡面的網站資料庫至VPS上mysql存放資料庫的目錄裡面,解壓就行。我的VPS存放資料庫的路徑是 /usr/local/mysql/var。
上傳好網站資料,解壓,配置好資料庫連結參數就行,網站就能正常串連上了,我本以為這已經是順利遷移完成了,但後來操作的時候,發現只能讀取資料庫的內容,不能更改寫入任何資訊,提示#1036 – Table ‘* ‘ is read only (*號為任意表),也就是說表只有唯讀屬性。
通過SSH,給資料庫檔案777許可權,dedeadmin是我的資料庫檔案夾
chmod -R 0777 /usr/local/mysql/var/dedeadmin/
給資料庫目錄的所屬使用者和組改為MySQL
chown -R mysql:mysql dedeadmin
但是這樣還不能更改資料庫,首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 裡面,還需要運行以下命令:
./mysqladmin -u root -p flush-tables
之後輸入root帳號的密碼,馬上就好了,沒有任何任何提示,然後測試一下,能正常讀寫,搬家也就順利完
-----------
linux中解決辦法
1. 找到資料庫檔案放置的目錄,如/usr/local/mysql/var/xx
2. 更改此資料庫下所有檔案的所有權:chown mysql.mysql *.*
3. 關閉mysql:killall mysqld
4. 開啟mysql:進入mysql的bin目錄,運行 ./mysqld_safe --user=mysql &
------------
前幾天我把一個系統掛到伺服器上,資料庫出現了如下的錯誤提示
#1036 - Table ' ' is read only
我把網站傳到伺服器上,把備份的資料庫檔案放到/usr/local/mysql/var下面之後,訪問某個表時出現許可權的問題,後來把資料庫的許可權改為777,把資料庫目錄的所屬使用者和組改為MySQL,錯誤依然存在。我採用了一下的方法解決了問題。
首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin下面。步驟如下:
#cd /usr/local/mysql/bin
#./mysqladmin -u root -p flush-tables
然後輸入你的資料庫密碼,沒有任何的錯誤提示,說明你成功了
如果是linux可如下操作
nux下MySQL出現問題,提示mysql error #1036 - Table 'xxxx' is read only
解決方案:
1. 找到資料庫檔案放置的目錄,如/usr/local/mysql/var/xx
2. 更改此資料庫下所有檔案的所有權:chown mysql.mysql *.*
3. 關閉mysql:killall mysqld
4. 開啟mysql:進入mysql的bin目錄,運行 ./mysqld_safe --user=mysql &