尝试更改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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。