MySQL 移动 ibdata 和 ib_logfile

MySQL 移动 ibdata 和 ib_logfile

我正在尝试将 ibdata 和 ib_logfile 移动到 SSD 驱动器上。我试过这种方法,但没有效果:

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

我的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 选项,所以它可以锁定文件......

答案1

需要检查以下几点:

  • 确保没有 mysql 进程正在运行ps faux|grep mysql
  • 检查/ssd_drive/mysql所有权是否正确chown mysql:mysql -R /ssd_drive/mysql

当您从原始位置启动 mysql 时一切是否正常工作?

编辑:谷歌搜索给了我这个:http://norman.hooper.name/blog/post/19/moving-mysql-in-ubuntu/您是否也调整了 apparmor 的插座部分?

答案2

请注意,从性能角度来看,将 ibdata 和 ib_logfiles 移动到 SSD 是最好的选择,因为这些是可在 SSD 上进行改进的随机 I/O 文件。

相关内容