MySQL 5.1.54 Ubuntu 11.04
我尝试将my.conf中的bin日志目录更改为:
[mysqld]
log_bin=/home/developer/logs/mysql/mysql-bin.log
此更改后,MySQL服务器无法启动时出现错误:
/usr/sbin/mysqld: File '/home/developer/logs/mysql/mysql-bin.index'
not found (Errcode: 13)
111005 12:47:58 [ERROR] Aborting
目录/ home / developer / logs / mysql /的权限是0777
发生了什么事?
答案 0 :(得分:24)
像往常一样,解决方案很简单但不明显:它需要编辑apparmor设置 我刚刚在 /etc/apparmor.d/usr.sbin.mysqld 添加了一个新字符串,其中包含目标目录的路径: / home / developer / logs / * rw
有效!
答案 1 :(得分:22)
/ usr / sbin / mysqld:找不到文件'/usr/binlogs/mysql-bin.index' (错误代码:13)
它对我有用:
chown -R mysql:mysql / usr / binlogs /
答案 2 :(得分:8)
就像遇到类似问题的人一样,解决方案基本相同,但问题的原因并不明显。
升级Debian wheezy之后,mysql无法启动。
不知何故,我不知道如何对/var/lib/mysql
中某些文件的权限不归mysql用户所有,从而阻止服务器启动。
chown -R mysql.mysql /var/lib/mysql
修复了它。
我没有做任何搞乱mysql的事情,这是一个标准:
apt-get update
apt-get upgrade
Debian升级期间出现了一些问题,需要手动干预。
答案 3 :(得分:4)
选项1:
IsSpecial = 1
将包含.index文件的日志文件复制到新位置。
var result = context.kinds.Where(e => e.CategoryType == 2 &&
e.Graphics.Any(g=>g.IsSpecial == 1));
对service mysqld stop
文件进行更改。
cp mysql-bin.log* /path/to/binlogs
cp mysql-bin.index /path/to/binlogs
/etc/my.cnf
选项2:
使用此实用程序重新定位二进制日志:
[mysqld]
log-bin=/path/to/newdirecory/mysql-bin
log-bin-index=/path/to/newdirectory/mysql-bin.index
答案 4 :(得分:3)
Selinux可能会强制执行MySQL数据库文件必须存在/ var / lib / mysql而不是其他任何地方的规则。如果将mysql移动到另一个目录,请尝试关闭selinux(内核启动命令行上的selinux = 0)。
答案 5 :(得分:1)
您需要为目录授予用户权限,如下所示:
chown -R mysql:mysql /home/developer/logs/mysql/
答案 6 :(得分:1)
在“my.cnf”文件中进行复制配置时需要提及
服务器ID = 1 log_bin = /无功/日志/ MySQL的/ MySQL的-bin.log
您可以创建自己的目录并授予权限。 在/ var / log /
中创建目录“mysql”chmod 777 mysql
这适用于MySQL 5.7版
答案 7 :(得分:1)
mysqld:找不到文件'/data/log/mysql/mysql-bin.index'(错误代码:2 -没有此类文件或目录)
我真的陷入了MySQL Master-Slave设置的中间。最后,上面是一个权限问题,添加下面的命令解决了我的问题。
chown -R mysql:mysql / data / log / mysql /
答案 8 :(得分:0)
您的用户是否可以访问所有上层目录?特别是/ home / developer /目录?尝试使用mysql服务器帐户登录并触摸日志文件。
答案 9 :(得分:0)
当我在全新安装期间尝试更改 datadir 变量时,我遇到了类似的问题。在我的情况下,解决方案是第一次启动时禁用log-bin。之后,我能够使用新路径再次启用它...
答案 10 :(得分:0)
您的配置错误:
log_bin=/home/developer/logs/mysql/mysql-bin.log
你会改用
log-bin=/home/developer/logs/mysql/mysql-bin.log
答案 11 :(得分:0)
您还可以在my.cnf
文件中注释定义日志位置的行,以便mysql将考虑其默认路径并正确启动。
log-bin = /var/log/mysql/mysql-bin.log
- > #log-bin = /var/log/mysql/mysql-bin.log
。
如果您不太关心日志,这将会很有帮助。
答案 12 :(得分:0)
如mysql中的文档所述,https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin
该变量至少在5.7版中为log_bin而不是log-bin