Percona MySQL 5.5 启动失败

Percona MySQL 5.5 启动失败

尝试在这里设置新服务器但在错误日志中不断出现此信息:

mysqld_safe Starting mysqld daemon with databases from /data/mysql/myisam
[Warning] Can't create test file /data/mysql/myisam/hostname.lower-test
[Warning] Can't create test file /data/mysql/myisam/hostname.lower-test
[Note] Flashcache bypass: disabled
[Note] Flashcache setup error is : setmntent failed

/usr/sbin/mysqld: File '/var/mysql/bin/bin-log.index' not found (Errcode: 13)
[ERROR] Aborting

[Note] /usr/sbin/mysqld: Shutdown complete

mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

其下的所有内容/data/mysql(包括 ibdata 和 myisam 文件夹)均归 mysql:mysql 所有,并且具有适当的权限

对于包含 bin 和中继日志的文件夹也是如此/var/mysql

apparmor 已从服务器清除

有任何想法吗?

附言

似乎除了 apparmor 之外还有其他东西影响访问 mysql 文件的权限

在我将数据目录更改为更默认的目录 - /var/lib/mysql 之后,“无法创建测试文件”错误消失了,但是“未找到'/var/mysql/bin/bin-log.index'(错误代码:13)”仍然存在

聚苯硫醚

所以我重新安装了 apparmor 并将所有文件夹添加到 mysqld 的配置文件中,上面提到的错误现在消失了(或者 mysql 现在甚至没有到达那个地步)

我现在拥有的是:/usr/sbin/mysqld:加载共享库时出错:libpthread.so.0:无法打开共享对象文件:没有此文件或目录

用头撞墙。

答案1

这个问题现在有点老了,但万一其他人碰到这个页面(就像我一样),这就是让我开始工作的原因:

就我而言,答案是 apparmor。

解决方法:编辑文件/etc/apparmor.d/usr.sbin.mysqld

添加以下行:

/path/to/new/data/ r,
/path/to/new/data/** rwk,
/path/to/new/logs/ r,
/path/to/new/logs/ rw,

然后重新启动 apparmor:

sudo /etc/init.d/apparmor restart

AppArmor 阻止 mysql 访问这些文件的新位置。这就是为什么所有权限看起来都正确的原因。“某些东西”阻止 mysql 访问新位置是正确的。那个“某些东西”就是“apparmor” :-)

Apparmor 似乎是 Ubuntu 11.10 的标准配置,我就是在这里遇到了这个问题。10.04 似乎没有默认安装 Apparmor。

希望这对某些人有帮助,我已经为这个问题绞尽脑汁好几个小时了!

答案2

如果这是全新安装,您需要运行mysql_install_db脚本来创建所需的表/文件。

答案3

是全新安装的吗?

bin-log.index是二进制日志文件名的索引文件。作为临时解决方法,您可以注释掉该log-bin=my.cnf并重试。

如果没有帮助,请尝试使用启动 MySQL mysqld_safe --user=root &,登录 MySQL 并运行以下命令:

mysql> FLUSH LOGS;
mysql> RESET MASTER;

然后再次启动 MySQL:

sudo killall mysqld_safe
sudo /etc/init.d/mysqld start

相关内容