首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料目錄遷移完整步驟:修改 my.cnf、複製檔案、權限修正、驗證

     編輯:MySQL 資料庫相關知識

    適用場景

    • 系統盤空間不足,遷移至資料盤
    • 統一多實例資料目錄結構
    • 更換儲存設備 (HDD→SSD、本地→網路存儲)

    Windows 圖文步驟 (文字版)

    1. 停止服務:net stop mysql 或服務管理器
    2. 編輯 my.ini:
      路徑通常在 C:\Program Files\MySQL\MySQL Server 5.x\my.ini
      搜尋 datadir,修改為新路徑,例:
      datadir="D:/MySQL/Data/" (正斜線、結尾斜線、雙引號)
    3. 複製資料:
      將舊目錄 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.x\Data\ 內**所有檔案/資料夾**複製至新目錄 D:\MySQL\Data\
    4. 啟動服務:net start mysql
    5. 驗證:
      mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"
      建表測試:CREATE DATABASE test_mv; USE test_mv; CREATE TABLE t (id INT); INSERT INTO t VALUES (1); SELECT * FROM t;

    Linux 通用步驟

    systemctl stop mysqld
    # 1. 備份舊目錄 (保險)
    rsync -av /var/lib/mysql/ /var/lib/mysql.bak/
    
    # 2. 複製到新位置
    mkdir -p /data/mysql
    rsync -av /var/lib/mysql/ /data/mysql/
    
    # 3. 修改 my.cnf
    # [mysqld]
    # datadir = /data/mysql
    # socket = /data/mysql/mysql.sock
    sed -i 's|^datadir=.*|datadir=/data/mysql|' /etc/my.cnf
    sed -i 's|^socket=.*|socket=/data/mysql/mysql.sock|' /etc/my.cnf
    
    # 4. 修正權限 (關鍵)
    chown -R mysql:mysql /data/mysql
    chmod 750 /data/mysql
    find /data/mysql -type f -exec chmod 640 {} \;
    
    # 5. SELinux (如啟用)
    semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
    restorecon -Rv /data/mysql
    
    # 6. 啟動驗證
    systemctl start mysqld
    mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"

    常見失敗原因

    • 權限錯誤:chown 漏跑、SELinux 阻擋
    • datadir 路徑寫法:Windows 用正斜線、結尾斜線、雙引號;Linux 不加引號
    • 舊目錄殘留 mysql.sock、pid 檔干擾 → 複製前清理或啟動前刪除
    • 未同步修改 socket 參數導致客戶端連線失敗
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved