1. 程式人生 > >Ubuntu 下mysql資料庫存放位置遷移

Ubuntu 下mysql資料庫存放位置遷移

問題

在使用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