无法触摸“/var/log/mysqld.log”:权限被拒绝

cannot touch `/var/log/mysqld.log': Permission denied

我已经在 cent OS RHEL5.5 中重新安装了 mysql 服务器,我收到以下错误

touch: cannot touch `/var/log/mysqld.log': Permission denied

chown: changing ownership of `/var/log/mysqld.log': Operation not permitted

chmod: changing permissions of `/var/log/mysqld.log': Operation not permitted

MySQL Daemon failed to start.

Starting mysqld:                                           [FAILED]

我检查了日志文件的权限,它作为 mysql 用户

具有正确的权限
-rw-r----- 1 mysql mysql   5931 Mar  9 04:36 mysqld.log

请让我知道这方面的问题以及解决方法。

谢谢

好的。我已经解决了这个问题,

$ /usr/libexec/mysqld --skip-grant &

[1] 5388

InnoDB:错误:日志文件 ./ib_logfile0 大小不同 0 50331648 字节

InnoDB: 比 .cnf 文件中指定的 0 5242880 字节! 150312 10:03:28 [注意] /usr/libexec/mysqld:连接准备就绪。 版本:'5.0.95' 套接字:'/var/lib/mysql/mysql.sock' 端口:3306 源码分发

$ rm -rf /var/lib/mysql/ib_logfile0

$ rm -rf /var/lib/mysql/ib_logfile1

$ ls -l /var/lib/mysql

我已删除日志文件并重新启动 mysql 服务器。

谢谢

解决方法是:

$ sudo touch /var/log/mysqld.log
$ sudo chown mysql:mysql /var/log/mysqld.log
$ sudo chcon system_u:object_r:mysqld_log_t:s0 /var/log/mysqld.log

就我而言,这是在降级 AWS EC2 实例后发生的。错误如下:

$ service mysqld start
touch: cannot touch ‘/var/log/mysqld.log’: Permission denied
chown: changing ownership of ‘/var/log/mysqld.log’: Operation not permitted
chmod: changing permissions of ‘/var/log/mysqld.log’: Operation not permitted
chown: changing ownership of ‘/var/lib/mysql’: Operation not permitted
chmod: changing permissions of ‘/var/lib/mysql’: Operation not permitted
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

原来问题是新降级的 VM 没有足够的内存,因为 MySQL 正在尝试保留。

etc/my.cnf 上更新为 InnoDB 保留的值解决了问题:

innodb_buffer_pool_size=4G

不需要对文件系统权限进行其他更改。

就我而言,ubuntu apparmor 有问题。

解决方案:

编辑 mysqld 配置文件(通常在 /etc/apparmor.d/usr.sbin.mysqld 中)并确保您有:

/var/log/mysqld.log rw,

systemctl reload apparmor

touch /var/log/mysqld.log

chown mysql:mysql /var/log/mysqld.log

chmod 0644 /var/log/mysqld.log

systemctl restart mysql