Mysql
mysql數據庫沒有可用空間
我正在將一個200 GB的數據庫恢復到新安裝的RHEL機器中。但是,在恢復時我遇到了
no space available
問題。是否可以更改儲存數據庫的目錄?
首先,我只能使用以下
mysql
查詢來驗證它是否與空間問題有關。mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
上面的命令將輸出返回給我,
+---------------------------+----------------------------+ | Variable_name | Value | +---------------------------+----------------------------+ | basedir | /usr | | character_sets_dir | /usr/share/mysql/charsets/ | | datadir | /var/lib/mysql/ | | innodb_data_home_dir | | | innodb_log_group_home_dir | ./ | | lc_messages_dir | /usr/share/mysql/ | | plugin_dir | /usr/lib/mysql/plugin/ | | slave_load_tmpdir | /tmp | | tmpdir | /tmp | +---------------------------+----------------------------+
從上面的命令中我們可以看到,datadir存在於
/var/lib/mysql
. 現在,我需要確保/var
沒有足夠的空間來容納數據庫,在這種情況下我的檢測是正確的。我使用以下命令實現了它。df -P /var | tail -1 | cut -d' ' -f 1
上面的命令基本上告訴了特定目錄的掛載點。正如我所懷疑的那樣,掛載點
/dev/sda2
只有40 GB的空間。現在,更改數據目錄很簡單。使用停止mysql服務,
service mysqld stop
編輯文件
/etc/my.cnf
以將datadir放到我們有足夠空間的某個分區。(這適用於 RHEL,可能因作業系統版本而異)。更改datadir後,使用命令重新啟動 mysql 服務,service mysqld start
參考