MySQL資料庫遷移注意點

2021-09-03 10:22:08 字數 4735 閱讀 8154

——廢話先不羅嗦了,就讓這篇草草完成的部落格文章全且當做個記錄吧。

以前我使用的是centos上的mysql,後來因為測試需要,需要將**以及在資料庫儲存的資料遷移到新的系統中進行測試,目標系統為redhat enterprise linux server(rhel)。

由於以前從來沒有遷移過資料庫,因此馬上就遇到了難題。

還有其他問題沒有列出,僅僅就許可權的問題在下面的命令以及執行結果中展示。

注:部分顯示被遮蔽。

sun 25 mar 2012 05:07:30 pm cst  

在遷移mysql時出現的錯誤/usr/bin/mysqlshow: cannot list tables in ********: can't read dir of './********/' (errno: 13)  

解決方案:mysql資料庫的子資料庫必須是mysql使用者和mysql組所有,否則mysql無法讀取遷移過來的資料庫。 

[root@localhost mysql]# ls -al 

total

drwxr-xr-x.  7 root root     4096 mar 24 02:44 . 

drwxr-xr-x. 48 root root     4096 mar 24 02:45 .. 

-rw-r-----.  1 root root 27262976 mar 24 02:44 ibdata1 

-rw-r-----.  1 root root  5242880 mar 24 02:44 ib_logfile0 

-rw-r-----.  1 root root  5242880 mar 24 02:44 ib_logfile1 

drwx------.  2 root root     4096 mar 24 02:44 ********

drwx------.  2 root root     4096 mar 24 02:44 mysql 

drwx------.  2 root root     4096 mar 24 02:44 performance_schema 

drwx------.  2 root root     4096 mar 24 02:44 ********

drwx------.  2 root root     4096 mar 24 02:44 ********

[root@localhost mysql]# ls /var/lib/mysql/ -al 

total

drwxr-xr-x.  5 mysql mysql     4096 mar 25 16:33 . 

drwxr-xr-x. 54 root  root      4096 mar 24 04:27 .. 

-rw-rw----.  1 mysql mysql 10485760 mar 25 16:23 ibdata1 

-rw-rw----.  1 mysql mysql  5242880 mar 25 16:23 ib_logfile0 

-rw-rw----.  1 mysql mysql  5242880 mar 25 16:23 ib_logfile1 

drwx------.  2 root  root      4096 mar 25 16:33 ********

drwx------.  2 mysql mysql     4096 mar 25 16:23 mysql 

srwxrwxrwx.  1 mysql mysql        0 mar 25 16:23 mysql.sock 

drwx------.  2 root  root      4096 mar 25 16:33 ********

[root@localhost mysql]# chown -r mysql:mysql ./********/

[root@localhost mysql]# chown -r mysql:mysql ./********/ 

[root@localhost mysql]# service mysqld restart 

stopping mysqld:                                           [  ok  ] 

starting mysqld:                                           [  ok  ] 

[root@localhost mysql]# ls -al 

total

drwxr-xr-x.  7 root  root      4096 mar 24 02:44 . 

drwxr-xr-x. 48 root  root      4096 mar 24 02:45 .. 

-rw-r-----.  1 root  root  27262976 mar 24 02:44 ibdata1 

-rw-r-----.  1 root  root   5242880 mar 24 02:44 ib_logfile0 

-rw-r-----.  1 root  root   5242880 mar 24 02:44 ib_logfile1 

drwx------.  2 mysql mysql     4096 mar 24 02:44 ********

drwx------.  2 root  root      4096 mar 24 02:44 mysql 

drwx------.  2 root  root      4096 mar 24 02:44 performance_schema 

drwx------.  2 root  root      4096 mar 24 02:44 ********

drwx------.  2 mysql mysql     4096 mar 24 02:44 ********

[root@localhost mysql]# cd /var/lib/mysql/ 

[root@localhost mysql]# ls -al 

total 

drwxr-xr-x.  5 mysql mysql     4096 mar 25 17:12 . 

drwxr-xr-x. 54 root  root      4096 mar 24 04:27 .. 

-rw-rw----.  1 mysql mysql 10485760 mar 25 17:11 ibdata1 

-rw-rw----.  1 mysql mysql  5242880 mar 25 17:12 ib_logfile0 

-rw-rw----.  1 mysql mysql  5242880 mar 25 16:23 ib_logfile1 

drwx------.  2 root  root      4096 mar 25 16:33 ********

drwx------.  2 mysql mysql     4096 mar 25 16:23 mysql 

srwxrwxrwx.  1 mysql mysql        0 mar 25 17:12 mysql.sock 

drwx------.  2 root  root      4096 mar 25 16:33 ********

[root@localhost mysql]# chown -r mysql:mysql ./********/ 

[root@localhost mysql]# chown -r mysql:mysql ./********/ 

[root@localhost mysql]# ls -al 

total

drwxr-xr-x.  5 mysql mysql     4096 mar 25 17:12 . 

drwxr-xr-x. 54 root  root      4096 mar 24 04:27 .. 

-rw-rw----.  1 mysql mysql 10485760 mar 25 17:11 ibdata1 

-rw-rw----.  1 mysql mysql  5242880 mar 25 17:12 ib_logfile0 

-rw-rw----.  1 mysql mysql  5242880 mar 25 16:23 ib_logfile1 

drwx------.  2 mysql mysql     4096 mar 25 16:33 ********

drwx------.  2 mysql mysql     4096 mar 25 16:23 mysql 

srwxrwxrwx.  1 mysql mysql        0 mar 25 17:12 mysql.sock 

drwx------.  2 mysql mysql     4096 mar 25 16:33 ********

[root@localhost mysql]# service mysqld restart 

stopping mysqld:                                           [  ok  ] 

starting mysqld:                                           [  ok  ] 

[root@localhost mysql]#  

其實說的白了,就是需要注意許可權指派。因為mysql的資料庫必須由mysql建立和擁有。因為一般來說,遷移過來的都是只具有root的許可權——664。所以只有使用chown命令了。

附錄:chown的用法:

chown -r 使用者名稱:使用者組 目標檔案或目錄

其中r表示遞迴執行。

MySQL資料庫遷移注意點

原始出處 作者資訊和本宣告。否則將追究法律責任。廢話先不羅嗦了,就讓這篇草草完成的部落格文章全且當做個記錄吧。以前我使用的是centos上的mysql,後來因為測試需要,需要將 以及在資料庫儲存的資料遷移到新的系統中進行測試,目標系統為redhat enterprise linux server r...

資料遷移注意點

注意點如下 1.程式邏輯部分,新邏輯上線,注意對老邏輯的相容,千萬不要不管三七二十一暴力替換。2.資料庫部分 1 能建新表盡量建新表以避免對老資料的破壞。2 如果老表有欄位增加,千萬不要做非空,唯一性的約束,否則後果自負。3 假如需要減欄位,那麼請考慮臨時替代的方案,比如新建一張臨時表,讓程式先取臨...

CodeFirst遷移注意點

context建構函式 不檢查 migrationhistory 取消當資料庫模型發生改變時刪除當前資料庫重建新資料庫的設定。database.setinitializer null 重新建立資料庫 database.setinitializer new dropcreatedatabaseifmo...