Ubuntu

MySQL 移動 ibdata & ib_logfile

  • April 28, 2013

我正在嘗試在 ssd 驅動器上移動 ibdata 和 ib_logfile。我試過這種方式,但它不起作用:

service mysql stop
cd /var/lib/
cp -ra mysql mysql_backup
cp -a mysql/ibdata1 mysql/ib_logfile* /ssd_drive/mysql

my.cnf看起來像這樣(相關部分):

innodb_log_group_home_dir=/ssd_drive/mysql
innodb_data_home_dir=/ssd_drive/mysql

在所有更改之後,我收到以下錯誤:

InnoDB: Unable to lock /ssd_drive/mysql/ibdata1, error: 13
InnoDB: Check that you do not already have another mysqld process

我是否需要刪除一些鎖定文件,或者我忘記了其他一些東西……

我還設置了 mysql apparmor,以便它可以在此目錄上 rwk,然後重新啟動:

/usr/sbin/mysqld {
.................
/ssd_drive/mysql/* rwk,
.................
}

更新: 我忘了放 k 選項,所以它可以鎖定文件……

幾件事情要檢查:

  • 確保沒有 mysql 程序正在執行ps faux|grep mysql
  • 檢查/ssd_drive/mysql所有權是否正確chown mysql:mysql -R /ssd_drive/mysql

從原始位置啟動 mysql 時一切正常嗎?

**編輯:**一些Google搜尋給了我這個:http ://norman.hooper.name/blog/post/19/moving-mysql-in-ubuntu/你也調整了apparmor的套接字部分嗎?

請注意,從性能的角度來看,將 ibdata 和 ib_logfiles 移動到 SSD 是您可以做的最好的事情,因為這些是隨機 I/O 文件,可以在 SSD 上進行改進。

引用自:https://serverfault.com/questions/376925