mysqld:File' /var/log/mysql/mysql-bin.index'找不到(错误代码:13)

时间:2014-06-18 11:02:41

标签: mysql mysqlbinlog

尝试重启MySQL服务器后,我遇到了这个错误。

root@private:/# mysqld_safe 
140618 03:56:53 mysqld_safe Can't log to error log and syslog at the same time.  Remove all --log-error configuration options for --syslog to take effect.
140618 03:56:53 mysqld_safe Logging to '/var/log/mysql/error.log'.
140618 03:56:53 mysqld_safe Starting mysqld daemon with databases from /mysql
140618 03:56:53 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

将/ var / log / mysql的权限更改为mysql用户后,我遵循的方法(以及大多数在互联网上找到的方法)。 但它不起作用

drwxr-s---  2 mysql             mysql       4096 Jun 18 03:31 mysql/

内部:

root@private:/var/log# ll mysql
total 12
drwxr-s---  2 mysql mysql 4096 Jun 18 03:31 ./
drwxr-xr-x 24 root  root  4096 Jun 18 03:27 ../
-rw-r-----  1 mysql mysql 1989 Jun 18 03:34 error.log
-rwxrwxrwx  1 mysql mysql    0 Jun 18 03:13 mysql-bin.index*

我的数据路径:

drwxr-xr-x   3 mysql    mysql     4096 Jun 18 03:27 mysql/

我甚至尝试重新安装MySQL,但错误并没有消失。

请帮帮我!!!

更新1:关于my.cnf - 错误日志配置。我打开了常规和错误日志(到error.log)。但是一般日志文件中没有任何内容。对于错误日志文件,没有比上面复制的错误更多的东西。

# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries       = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes

更新2:关于apparmor或selinux的问题,我只使用apparmor。我还试图追加:

/var/log/* rw

/etc/apparmor.d/usr.sbin.mysqld

但它要么不起作用

更新3:

我相信以下更改对我的案例有效:

  • 必须确保mysql帐户对mysql日志/数据目录有足够的权限(rw)。从root或sudoer帐户只需尝试切换到mysql用户,然后创建/编辑任何测试文件。

  • 不要删除或禁用apparmor并使用以下内容更新mysql配置文件(通常是usr.sbin.mysqld):

    /var/log/mysql-bin.index rw,

    / mysql / * rw,

您可以根据自己的情况自定义它们。

  • 重新加载mysql个人资料

    apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld

然后重新启动它。

希望任何遇到互联网并且没有任何幸运地支付更改许可和apparmor的时间的人都会知道。

1 个答案:

答案 0 :(得分:2)

在“my.cnf”文件中进行复制配置时需要提及

server-id = 1

log_bin = /无功/日志/ MySQL的/ MySQL的-bin.log

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

中创建目录“mysql”
chmod 777 mysql

这适用于MySQL 5.7版