針對 手動分表 + 符號鏈接 的詳細操作流程(假設(shè)新機械硬盤已掛載到 /opt/mysql)

一、準備工作

1. 確認新硬盤掛載狀態(tài)

# 查看掛載點是否正常
df -h | grep /opt/mysql

# 預(yù)期輸出示例:
/dev/sdb1        13T  0% /opt/mysql

2. 確保MySQL配置允許符號鏈接

編輯 /etc/my.cnf,確認以下參數(shù)已啟用:

[mysqld]
symbolic-links = 1        # 允許符號鏈接

innodb_file_per_table = 1 # 必須開啟(每個表獨立存儲)

3. 創(chuàng)建子目錄并設(shè)置權(quán)限

sudo mkdir -p /opt/mysql/tables
sudo chown -R mysql:mysql /opt/mysql

二、手動遷移單表到機械硬盤

1. 停止MySQL服務(wù)

sudo systemctl stop mysqld

2. 遷移指定表文件(以 big_table 為例)

# 進入MySQL數(shù)據(jù)目錄
cd /home/mysql

# 假設(shè)數(shù)據(jù)庫名為 `mydb`,表名為 `big_table`
# 移動表文件到機械硬盤(保留權(quán)限)
sudo rsync -av ./mydb/big_table.* /opt/mysql/tables/
沒有rsync命令也可以使用cp -rf 

# 刪除原文件(確保rsync成功后再操作)
sudo rm -f ./mydb/big_table.ibd ./mydb/big_table.frm

3. 創(chuàng)建符號鏈接

# 在MySQL數(shù)據(jù)目錄中創(chuàng)建軟鏈接
sudo ln -s /opt/mysql/tables/big_table.ibd /home/mysql/mydb/
sudo ln -s /opt/mysql/tables/big_table.frm /home/mysql/mydb/

# 驗證鏈接
ls -l /home/mysql/mydb/big_table.*
# 正確輸出應(yīng)顯示箭頭指向目標文件:
lrwxrwxrwx 1 mysql mysql 25 Aug 10 10:00 big_table.ibd -> /opt/mysql/tables/big_table.ibd

4. 修復(fù)權(quán)限(關(guān)鍵步驟)

sudo chown -R mysql:mysql /home/mysql/mydb
sudo chown -R mysql:mysql /opt/mysql/tables

5. 啟動MySQL并驗證

sudo systemctl start mysqld

# 登錄MySQL檢查表狀態(tài)
mysql -u root -p -e "USE mydb; CHECK TABLE big_table;"
# 預(yù)期輸出:
# Table   Op       Msg_type  Msg_text
# mydb.big_table check    status    OK
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容