萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Linux 下 MySQL 資料目錄遷移完整操作手冊(CentOS 6.4 + MySQL 5.6 RPM)

預設 /var/lib/mysql 磁碟空間不足,需遷移至 /var/lib/mysql2。RPM 安裝環境下的標準化遷移流程,含服務管理、權限修正、配置同步、啟動驗證。

操作環境

  • OS:CentOS 6.4 x86_64
  • MySQL:5.6.13 (RPM 安裝)
  • 來源:/var/lib/mysql → 目標:/var/lib/mysql2

遷移步驟

1. 停止服務

service mysql stop

2. 複製或重命名資料目錄

cd /var/lib
# 方案 A:複製(保留原目錄回滾)
cp -R mysql mysql2
# 方案 B:重命名(極快,無額外空間佔用)
# mv mysql mysql2

3. 修正目錄擁有者與權限

chown -R mysql:mysql mysql2
chmod 750 mysql2  # 建議:目錄 750,檔案 640,由 mysql 進程擁有

4. 修改 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql2
socket=/var/lib/mysql2/mysql.sock
# 其他參數保持不變
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5. 修改啟動腳本 /etc/init.d/mysql

# 找到原行註釋
# datadir=/var/lib/mysql
# 新增
datadir=/var/lib/mysql2

若使用 systemd(CentOS 7+),改用 systemctl edit mysql 建立 drop-in 覆寫 Environment=DATADIR=/var/lib/mysql2。

6. 啟動驗證

service mysql start
# 或
/etc/init.d/mysql start

# 驗證
mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"
# 應輸出 /var/lib/mysql2

驗收清單

  • 服務正常啟動,錯誤日誌無 [ERROR]。
  • SHOW VARIABLES LIKE 'datadir'; 顯示新路徑。
  • 業務查寫正常,主從同步(如有)Seconds_Behind_Master=0。
  • 備份腳本、監控腳本路徑已同步更新。

常見坑點

遷移完成後,建議保留舊目錄 7 天觀察無異常再刪除,確保萬無一失。

copyright © 萬盛學電腦網 all rights reserved
現象原因解決
啟動失敗 Can't create test file目錄擁有者非 mysqlchown -R mysql:mysql /var/lib/mysql2
Socket 連線失敗my.cnf 與啟動腳本 socket 路徑不一致統一指向 /var/lib/mysql2/mysql.sock
SELinux 拒絕存取新目錄無 mysqld_db_t 標籤semanage fcontext -a -t mysqld_db_t "/var/lib/mysql2(/.*)?"; restorecon -Rv /var/lib/mysql2
AppArmor 拒絕 (Ubuntu)profile 限制舊路徑修改 /etc/apparmor.d/usr.sbin.mysqld 加入新路徑 → service apparmor reload