我目前正在运行 Ubuntu 13.04 和 MySQL 5.5。我一直在使用 InnoDB 和默认安装位置。问题是我的主要操作系统分区相当小(36GB),我需要将数据库移动到 2TB 驱动器。
我正在尝试更改 MySQL datadir:
/var/lib/mysql
到:
/path/to/new/directory
但我遇到了各种各样的问题。MySQL 拒绝启动,并且通常告诉我权限有问题。但这对我来说毫无意义。以下是我尝试过的方法:
我复制了以下文件:
cp -R /var/lib/mysql /path/to/new/directory
我编辑了/etc/mysql/my.cnf
:
datadir=/path/to/new/directory
更新了权限:
chown -R mysql:mysql /path/to/new/directory
更新的 Apparmor:
/path/to/new/directory/ r,
/path/to/new/directory/** rwk,
我确保重置了 Apparmor:
service apparmor restart
但它仍然给我错误。我不确定我还需要做什么。有人有在 Ubuntu 13.04、MySQL 5.5 和 InnoDB 下运行它的权威指南吗?
答案1
我遇到了完全相同的问题,但我找到了一个对我来说更好的替代方案,因为在 my.cnf 文件中将用户更改为 root 对我来说不起作用。
- 首先前往 MySQL 数据目录并将所有
ibdata
文件和所有ib_logfile
文件移动到临时文件夹(应该类似于mv /path_to_mysql_data_directory/ib* /path_to_temp_folder/
)。 - 运行
sudo service mysqld start
它就应该启动。 - 运行
sudo service mysqld stop
它就应该停止。 - 将您移动到临时文件夹的文件放回 MySQL 数据目录(应该看起来类似于
mv /path_to_temp_folder/ib* /path_to_mysql_data_directory/
)。 sudo service mysqld start
再次运行,一切就应该开始。
这个解决方案对我来说确实有效,但我还没有在其他地方测试过。