Ubuntu 下mysql資料庫存放位置遷移
阿新 • • 發佈:2018-11-02
問題
在使用mysql查詢建表的時候,突然除了這個錯誤
Error writing file '/tmp/MY0BkiqD' (Errcode: 28)
原因
後來才發現是我們伺服器的系統盤滿了,沒辦法儲存快取!!!
我們自己的伺服器有一塊SSD系統盤和另外一塊硬碟,安裝mysql時預設將資料庫存放在了SSD中,結果導致很快SSD不夠用了,因此將mysql資料庫的存放位置做了一下遷移。
1. 準備工作
首先確認mysql 資料存放位置
mysql -u root -p
輸入密碼後進入命令好操作
show variables like '%dir%';
可以看到我們的資料庫存放在
datadir = /var/lib/mysql
然後關閉mysql 服務
service mysql stop
2. 遷移資料
這裡使用mv命令之前遷移,如果謹慎一點可以先用cp命令拷貝下
mv /var/lib/mysql /data/mysql
3. 修改配置檔案
sudo vim /etc/mysql/my.cnf
將其中的datadir改為
datair = /data/mysql
儲存退出
然後
sudo vim /etc/apparmor.d/usr.sbin.mysqld
將其中
/var/lib/mysql/ r,
/var /lib/mysql/** rwk,
兩行許可權宣告,可以在前面加上#好註釋掉。然後對照格式,加入新路徑的許可權宣告:
/data/mysql/ r,
/data/mysql/** rwk,
最後
sudo vim /etc/apparmor.d/abstractions/mysql
將其中的sock地址改為
/data/mysql/mysql.sock rw
儲存退出
4. 修改檔案許可權
sudo chmod 755 /data
5. 重啟資料庫
配置檔案修改成功後就可以重啟資料庫,重啟資料庫之前需要先重新載入apparmor配置檔案,使用下面命令重新載入:
sudo /etc/init.d/apparmor restart
過載成功就可以使用下面命令啟動資料庫:
sudo /etc/init.d/mysql start