下面我簡(jiǎn)單整理一下這幾天把MySQL從/var/lib/mysql目錄下面轉(zhuǎn)移到/home/mysql_data/mysql下面具體操作
1、首先我們需要關(guān)閉MySQL,命令如下:
service mysqld stop
2、然后是轉(zhuǎn)移數(shù)據(jù),為了安全期間,我們采用復(fù)制的命令cp,先找到mysql的原目錄
cd /var/lib
ls
運(yùn)行這個(gè)命令之后就會(huì)看到mysql的目錄了,然后執(zhí)行cp命令
cp -a mysql /home/mysql_data/
這樣就把數(shù)據(jù)庫(kù)復(fù)制到/home/mysql_data下面去了
注意:(-a這個(gè)參數(shù)一定要帶著,否則復(fù)制過(guò)去的權(quán)限就不對(duì)了。)
如果數(shù)據(jù)庫(kù)比較大的話,時(shí)間會(huì)比較長(zhǎng),可能會(huì)超時(shí),具體怎么設(shè)置ssh不超時(shí)的辦法,請(qǐng)大家自己找相關(guān)資料。
3、然后我們修改配置文件,一共有三個(gè),下面我一一說(shuō)明:
修改第一個(gè)文件:修改之前先備份cp /etc/my.cnf /etc/my.cnfbak
vi /etc/my.cnf
打開(kāi)之后修改datadir的目錄為/home/mysql_data/mysql,
把socket改成/home/mysql_data/mysql/mysql.sock,為了安全起見(jiàn),你可以把原來(lái)的注釋掉,然后重新加入一行,改成現(xiàn)在的目錄。
修改第二個(gè)文件:修改之前先備份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak
vi /etc/init.d/mysqld
注意:準(zhǔn)確的位置是/etc/rc.d/init.d/mysqld,由于這里這里有一個(gè)/etc/init.d到/etc/rc.d/init.d的映射,所以用上面的命令即可,也簡(jiǎn)單。
把其中datadir/var/lib/mysql一行中,等號(hào)右邊的路徑改成你現(xiàn)在的實(shí)際存放路徑:/home/mysql_data/mysql
修改第三個(gè)文件:修改之前先備份 cp /usr/bin/mysqld_safe /usr/bin/mysqld_safebak
vi /usr/bin/mysqld_safe
這里也是修改datadir的目錄為/home/mysql_data/mysql
4、下面需要建立一個(gè)mysql.sock的鏈接:
ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
至此所有的修改都完成了,下面啟動(dòng)mysql
service mysqld start
或者重啟linux
reboot
如果能正常啟動(dòng),那基本上就沒(méi)什么問(wèn)題了。