?????? 前幾個月發(fā)布了新項目晴玖,服務器是10G磁盤A+50G外掛磁盤B读存,使用yum安裝的mysql,默認是裝在A盤的呕屎,運行一段時間后让簿,發(fā)現(xiàn)A盤的磁盤使用率已達到80%,仔細查了一番發(fā)現(xiàn)ibdata文件以每天50M的速度在增加秀睛,按照這個速度尔当,用不了一個月A盤就滿了,會導致mysql停止的蹂安;網(wǎng)上查了一些mysql目錄遷移的辦法椭迎,拿出來分享一下:
第一種辦法(簡單):
使用linux下的軟連接方法,具體操作如下:(以遷移到/home/mysql/目錄為例)
先停止mysql:
/etc/init.d/mysqld stop
移動數(shù)據(jù):
mv /var/lib/mysql/* /home/mysql/
創(chuàng)建軟連接:
ln -s /home/mysql/ /var/lib/mysql/
啟動mysql:
/etc/init.d/mysqld start
即可田盈。
第二種辦法(復雜):
首先我們需要關閉MySQL畜号,命令如下:
#service mysqld stop
然后是復制移動數(shù)據(jù),為了安全期間缠黍,我們采用復制的命令cp弄兜,先找到mysql的原目錄,一般是/var/lib/mysql,我們執(zhí)行:
#cp -a mysql /home/mysql/
這樣就把數(shù)據(jù)庫復制到/home/mysql下面去了瓷式,注意-a這個參數(shù)一定要帶著,否則有可能權限會出問題语泽。
然后我們修改配置文件贸典,一共有三個,下面我一一說明:
#vi /etc/my.cnf
打開之后修改datadir的目錄為/home/mysql_data/mysql踱卵,把socket改成/home/mysql_data/mysql/mysql.sock廊驼,為了安全起見,你可以把原來的注釋掉惋砂,然后重新加入一行妒挎,改成現(xiàn)在的目錄。
#vi /etc/init.d/mysqld
準確的位置是/etc/rc.d/init.d/mysqld西饵,由于這里這里有一個/etc/init.d到/etc/rc.d/init.d的映射酝掩,所以用上面的命令即可,也簡單眷柔。這里主要也是修改datadir的目錄為/home/mysql_data/mysql
#vi /usr/bin/mysqld_safe
這里也是修改datadir的目錄
下面需要建立一個mysql.sock的鏈接:
#ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
至此所有的修改都完成了期虾,下面啟動mysql
#service mysqld start
或者重啟linux
#reboot
如果能正常啟動原朝,那基本上就沒什么問題了。
總結(jié)需要注意事項:
1.修改datadir為新的data目錄镶苞。
2.合理修改innodb_log_file_size的值為實際遷移過來的日志文件大小喳坠。
3.字符集/默認引擎的修改,要與遷移前統(tǒng)一茂蚓。