Stories

Detail Return Return

CentOS / RHEL 上如何修改 MySQL 默認數據目錄 ? - Stories Detail

Changing the Default MySQL Data Directory

MySQL 是一個廣泛使用的開源關係數據庫管理系統(RDBMS),為無數的 web 應用程序和服務提供支持。默認情況下,MySQL 將其數據存儲在預定義的目錄中,這可能並不總是適合您的需求。您可能希望將數據目錄移動到另一個位置以獲得更好的性能和安全性,或者利用單獨的磁盤或分區。

在本指南中,我們將引導您完成在 Linux 系統上更改默認 MySQL 數據目錄的過程,確保以最小的停機時間順利過渡。

Step 1: 準備新的數據目錄

第一步是創建一個新目錄,用於存儲 MySQL 數據,確保新位置有足夠的存儲空間以滿足當前和未來的數據要求,用您所需的路徑替換 /new/mysql/data 路徑。

sudo mkdir -p /new/mysql/data

接下來,設置新目錄的所有權和權限,以匹配默認 MySQL 數據目錄的所有權和權限。

sudo chown -R mysql:mysql /new/mysql/data 
sudo chmod 750 /new/mysql/data

Step 2: 停止 MySQL 服務

在更改 MySQL 配置之前,必須先停止 MySQL 服務,以避免數據損壞或丟失。

sudo systemctl stop mysqld

Step 3: 將現有數據複製到新目錄

MySQL 服務停止後,可以安全地將現有數據複製到新目錄中。需要保留文件的權限和所有權。

sudo rsync -av /var/lib/mysql/* /new/mysql/data

如果原有數據目錄有所不同,則將 /var/lib/mysql 替換為當前的 MySQL 數據目錄路徑。

Step 4: 更新 MySQL 配置

要通知 MySQL 新數據目錄,您必須更新配置文件,打開 MySQL 配置文件。

sudo nano /etc/my.cnf

更新 datadir 和 socket 選項以指向新目錄

[mysqld]
datadir=/new/mysql/data
socket=/new/mysql/data/mysql.sock

如果這些選項不存在,將它們添加到 [mysqld] 部分,保存並關閉配置文件。

Step 5: 更新 systemd 配置 (可選)

如果您的系統使用 systemd 來管理 MySQL 服務,則可能需要更新 systemd 配置以反映新數據目錄。打開

MySQL systemd 服務文件,通常位於 /usr/lib/systemd/system/mysqld.service

/lib/systemd/system/mysql.service

sudo nano /usr/lib/systemd/system/mysqld.service

找到 ExecStart 行並添加 --datadir--socket 選項

ExecStart=/usr/sbin/mysqld --datadir=/new/mysql/data --socket=/new/mysql/data/mysql.sock

保存並關閉該文件,重新加載 systemd 配置。

sudo systemctl daemon-reload

Step 6: 更新 MySQL 客户端配置

為了確保 MySQL 客户端可以使用新的 socket 文件,需要更新客户端配置。

sudo nano /etc/my.cnf

找到 [client] 部分並更 socket 選項以指向新目錄

[client]
socket=/new/mysql/data/mysql.sock

如果 socket 選項不存在,將其添加到 [client] 部分。保存並關閉配置文件。

Step 7: 重啓 MySQL 服務

重啓 MySQL 服務,使更改生效。

sudo systemctl start mysqld

Step 8: 驗證更改

查看 mysql 服務狀態

sudo systemctl status mysqld

此外,您可以使用客户端連接到 MySQL 服務器,並驗證是否正在使用新的數據目錄

mysql -u root -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir";'

Step 9: 刪除或備份舊數據目錄 (可選)

一旦確認 MySQL 正在使用新的數據目錄並且一切正常,可以執行以下操作:

刪除舊數據目錄

sudo rm -rf /var/lib/mysql

或者,創建數據備份

sudo mv /var/lib/mysql /var/lib/mysql_backup

我的開源項目

酷瓜雲課堂-開源知識付費解決方案

Add a new Comments

Some HTML is okay.