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

尝试更改bin日志目录:mysql-bin.index未找到(错误代码:13),mysql,logging,bin,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

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/is 0777的权限


发生了什么事?

您的用户有权访问所有上层目录吗?特别是/home/developer/目录?尝试使用mysql服务器帐户登录并触摸日志文件。

在新安装期间尝试更改datadir变量时,我遇到了类似的问题。在我的案例中,解决方案是在禁用日志箱的情况下运行首次启动。之后,我能够使用新路径再次启用它…

与往常一样,解决方案很简单,但并不明显:它需要编辑apparmor设置 我刚刚在/etc/apparmor.d/usr.sbin.mysqld中添加了一个新字符串,其中包含指向目标目录的路径:/home/developer/logs/*rw


它起作用了

Selinux可能会强制MySQL数据库文件必须位于/var/lib/MySQL中,而不是其他任何地方。如果您将mysql移动到另一个目录,请尝试关闭selinux(内核引导命令行上的selinux=0)

/未找到usr/sbin/mysqld:File'/usr/binlogs/mysql-bin.index' (错误代码:13)

这对我来说很有效:

chown-rMySQL:mysql/usr/binlogs/


正如任何遇到类似问题的人的参考,解决方案基本相同,但问题的原因并不明显

升级Debian wheezy后,mysql无法启动

不知何故,我不知道mysql用户对
/var/lib/mysql
中某些文件的权限是如何拥有的,从而阻止服务器启动的

A
chown-R mysql.mysql/var/lib/mysql
修复了它

我没有做任何事情来搞乱mysql,这是一个标准:

apt-get update

apt-get upgrade
Debian升级过程中出现了一些问题,需要手动干预。

选项1:

  • 服务mysqld停止

  • 将日志文件(包括.index文件)复制到新位置

     cp mysql-bin.log* /path/to/binlogs
     cp mysql-bin.index /path/to/binlogs
    
  • /etc/my.cnf
    文件中进行更改

    [mysqld]
    log-bin=/path/to/newdirecory/mysql-bin
    
    log-bin-index=/path/to/newdirectory/mysql-bin.index
    
  • 服务mysqld启动

  • 备选案文2:

    使用此实用程序重新定位二进制日志:

    mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir
    

    您需要按如下方式授予该目录的用户权限:

    chown -R mysql:mysql /home/developer/logs/mysql/
    
    您的配置错误:

    log_bin=/home/developer/logs/mysql/mysql-bin.log
    
    你会使用

    log-bin=/home/developer/logs/mysql/mysql-bin.log
    

    在“my.cnf”文件中的复制配置期间,需要提及

    服务器id=1 log_bin=/var/log/mysql/mysql-bin.log

    您可以创建自己的目录并授予权限。 在/var/log中创建目录“mysql”/

    chmod777mysql


    这是适用于MySQL版本5.7

    的,您也可以在代码> >我的.CNF< /Cord>文件中定义行,它定义日志位置,所以MySQL会考虑它的默认路径并正确启动。
    log-bin=/var/log/mysql/mysql-bin.log
    ->
    #log-bin=/var/log/mysql/mysql-bin.log

    如果您不太关心日志,这将非常有用

    mysqld:File'/data/log/mysql/mysql-bin.index'未找到(错误代码:2 -没有这样的文件或目录)

    我真的陷入了MySQL主从设置的中间。最后,上面是一个权限问题,添加下面的命令解决了我的问题

    chown-rMySQL:mysql/data/log/mysql/


    正如mysql中的文档所说


    至少在版本5.7中,变量是log_bin而不是log bin

    我已经从/var/log/mysql目录复制了权限。没有结果。如果你向mysqld用户发送su并尝试访问该目录会发生什么?我运行“sudo-u mysql touch/home/developer/logs/test.txt”,它成功地创建了一个文件。我相信在这种情况下,错误消息和错误代码是误导性的。。。当我遇到这个问题时,我甚至尝试用二进制日志列表创建一个新的索引文件…,这也没用。你是什么意思?停止服务器->禁用日志库->启动服务器->停止服务器->启用日志库->启动服务器???不幸的是,这对梅诺来说并不完全有效。您是否也更改了datadir位置?如果是,我就是这样做的:在配置文件中禁用log-bin,使用自定义配置文件mysql\u install\u db,在安装结束时,mysqld由安装脚本启动。之后:停止、启用日志箱、启动。应该注意的是,这是在新的设置过程中发生的。如果你有一个现有的数据库,你的情况就不同了。这是意外删除mysql bin日志后最明显的解决方案。太好了@我的服务器上没有Maxx的windows等价物tappArmor.d。请注意,任何人都可以使用它。如果您希望apparmor路径也包含路径中的所有子文件夹,请使用双星**,例如(不带引号):“/home/developer/logs/**rw”,也不要忘记
    service apparmor restart
    afterwards您保存了我的一天。原始问题显示用户使用的是MySQL版本5.1.54,因此这不适用