天天看點

mysql資料庫本地遷移

在linux下預設的Mysql資料庫存儲的路徑為:var/lib/mysql

假如你要把目錄遷移到/data/mysqldata 下需要進行以下配置:

1.要把與Mysql資料庫有關的服務停掉,禁止通路Mysql

2.要把你的Mysql用mysqldump 這個指令備份

3.建立所要遷移的目錄或是路徑

如:

#dir –p/data/mysqldata

4.  止mysql服務

#etc/init.d/mysqldstop或是用service mysqld stop

5.  /var/lib/mysql整個目錄移到/data/mysqldata下

這裡我用cp以備出問題當然用mv也可以,

#cp –arp /var/lib/mysql/data/mysqldata/

這樣隻是把目錄和檔案移過去了,此時mysql控制檔案還不知道它自己的資料庫已經換了個位置。

6. 需要配置控制檔案:

一般vi/etc/my.cnf 如果你vi後發現沒有東西呀是在這個目錄下就沒有這個檔案你可以去/usr/share/mysql/目錄下找到一個my-medium.cnf 檔案,如果還是沒有你可以用find 指令去查找。這裡就不詳細說了。(find / -name *.cnf 或find / -name my.cnf)。接下來我們要編輯/etc/my.cnf為了保證mysql能正常工作我們需要指明mysql.sock檔案産生的位址。

#vi /etc/my.cnf

将#ocket =/var/lib/mysql/mysql.sock注釋掉在下面加下一行

socket =/data/mysqldata/mysql/mysql.sock

注:有些環境不一樣,是以你最好檢視一下,把指名的/var/lib/mysql/ 這個路徑下的檔案都換成/data/mysqldata/mysql 即可

7. 還有一個就是啟動腳本的配置

#vi/etc/init.d/mysqld

和上面配置my.cnf是一個道理:

把#atadir=/var/lib/mysql給注釋掉再他的下面添加

datadir=/data/mysqldata/mysql

當然你也要檢查一下看看還有别的是指在了/var/lib/mysql 都給他改成/data/mysqldata/mysql

這一步改完了還有一步要注意:

用#ln –s /data/mysqldata/mysql/mysql.sock/var/lib/mysql/mysql.sock指令來連結一下。

如果你前面把mysql的目錄是mv到你所要更改的目錄的話,這時你的/var/lib/mysql/ 是沒有mysql.sock檔案的,是以你還得要重新cp一份過來再執行上面的指令。

注意一下:mysql 目錄及裡面的檔案的權限,我前面用到cp –arp的道理就是為了不用改權限,當然了為了安全還是要檢查的好。無論mysql的目錄在什麼地方他的權限為rwxr_xr_x這個就不多說了。如果你是用cp的話,最後記得把/var/lib/mysql這個目錄mv到别的目錄下比說/home/下

如果按照上面的話,就可以完事。

繼續閱讀