Linux Centos 遷移Mysql 數據位置
由於業務量增加導致安裝在系統盤(20G)磁盤空間被占滿了, 現在進行數據庫的遷移. Mysql
是通過 yum
安裝的.
Centos6.5Mysql5.1
yum
安裝的 mysql
服務
查看 mysql
的安裝路徑
執行查詢 SQL
show variables like '%dir%';
datadir
就是數據路徑
轉移操作
-
新建
mysql
數據目錄mkdir /data/mysqlData
-
停止mysql服務
service mysqld stop
輸入密碼, 等待停止
-
把
/var/lib/mysql
整個目錄復制到/data/mysqlData
cp -rf /var/lib/mysql /data/mysqlData/
-
修改
my.cnf
文件cp /etc/my.cnf /etc/my.cnf.bak vim /etc/my.cnf
文件內容如下, 需要修改
datadir
,socket
對應的目錄[mysqld] default-character-set=utf8 #datadir=/var/lib/mysql datadir=/data/mysqlData/mysql #### #socket=/var/lib/mysql/mysql.sock socket=/var/lib/mysql/mysql.sock #### user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 [client] default-character-set=utf8
-
修改MySQL啟動腳本
/etc/init.d/mysqld
vim /etc/init.d/mysqld
修改文件中`datadir`路徑
#get_mysql_option mysqld datadir "/var/lib/mysql" get_mysql_option mysqld datadir "/data/mysqlData/mysql"
因為是通過`yum`安裝的需要修改`/usr/lib64/mysql/mysql_config`文件
vim /usr/lib64/mysql/mysql_config
修改內容
#ldata='/var/lib/mysql' ldata='/data/mysqlData/mysql' #socket='/var/lib/mysql/mysql.sock' socket='/data/mysqlData/mysql/mysql.sock'
-
修改權限
[root@sample ~]# chown -R mysql:mysql /data/mysqlData/mysql/ ← 改變數據庫的歸屬為 mysql
重啟mysql服務
service mysqld restart
執行一下查詢 sql
show variables like '%dir%';
發現 datadir
的路徑變了, 可以正常的運行 sql
, 證明可以正常的獲取數據了.
總結
這次操作是在測試服務器上操作的, 心情還是很緊張, 如果需要操作線上的數據庫, 一定要謹慎, 一定要謹慎, 一定要謹慎. 一定要注意備份. 這次遷移要保證在20分鍾完成, 這樣減少一下損失.
注意:warning:
:warning: 通過 yum
安裝的需要修改/usr/lib64/mysql/mysql_config文件