尝试更改bin日志目录:找不到mysql-bin.index(错误代码:13)

时间:2011-10-05 11:14:17

标签: mysql logging bin

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

发生了什么事?

13 个答案:

答案 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:

  1. IsSpecial = 1

  2. 将包含.index文件的日志文件复制到新位置。

    var result = context.kinds.Where(e => e.CategoryType == 2 && 
                                          e.Graphics.Any(g=>g.IsSpecial == 1));
    
  3. service mysqld stop文件进行更改。

     cp mysql-bin.log* /path/to/binlogs
     cp mysql-bin.index /path/to/binlogs
    
  4. /etc/my.cnf

  5. 选项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