在Ubuntu Server 10.04中更改MySQL数据目录

前端之家收集整理的这篇文章主要介绍了在Ubuntu Server 10.04中更改MySQL数据目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试更改ubuntu服务器10.04中的数据目录时出现以下错误.
100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/MysqLd: Can't find file: './MysqL/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the MysqL.plugin table. Please run MysqL_upgrade to create it.
100809 19:33:00  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means MysqLd does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
在对权限的一些普遍混淆之后,OP意识到问题不在于他没有权限和路径权限,而是AppArmor阻止MysqL读取和写入新位置.

这是他的解决方案:

首先停止MysqL所以当你摆弄时没有什么奇怪的事情发生:

$sudo stop MysqL

然后将所有数据库目录移动到新的主目录:

$sudo mv /var/lib/MysqL/<all folders> /new-MysqL-dir/

不要移动文件,它们将由MysqL生成,只需移动文件夹(即数据库).

然后礼貌地要求AppArmor允许MysqL使用新文件夹:

$sudo vim /etc/apparmor.d/usr.sbin.MysqLd
  >> add lines
     /new-MysqL-dir/ r,/new-MysqL-dir/** rwk,

然后告诉MysqL datadir已移动:

$sudo vim /etc/MysqL/my.cnf 
  >> change the line
     datadir=/var/lib/MysqL
  >> to
     datadir=/my-new-db-dir/

注意:根据您的数据库设置,您可能还需要更改innodb-data-home-dir等.

然后重新启动AppArmor以读取新设置:

$sudo /etc/init.d/apparmor restart

并使用新的datadir再次启动MysqL

$sudo start MysqL

猜你在找的Ubuntu相关文章