【问题标题】:MySql fails log says cannot access /var/lib/mysql directoryMySql 失败日志说无法访问 /var/lib/mysql 目录
【发布时间】:2017-09-26 21:30:27
【问题描述】:

我检查了诸如Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38) 之类的答案,但答案没有帮助。

我在生成日志文件时使用service mysqld start运行。

在尝试设置和运行mysql时,我不断收到错误

无法通过套接字'/var/mysql/mysql.sock'连接到本地MySQL服务器

当我检查 /var/log/mysql.log 中的日志文件时,我收到 InnoDB 错误消息

该错误表示mysqld没有对该目录的访问权限。

文件名./ibdata1

文件操作调用:'open'。

无法继续操作

目录 /var/mysql 确实存在。我手动将模式更改为 777,以确保运行将其更改回 755。

drwxr-xr-x。 mysql mysql /var/lib/mysql
-rwxrwxrwx。 mysql mysql ibdata1
-rwxrwxrwx。 mysql mysql ib_logfile0
-rwxrwxrwx。 mysql mysql ib_logfile1
drwxrwxrwx。 mysql mysql mysql srwxrwxrwx。 mysql mysql 关闭(我正在尝试设置的数据库)
drwxrwxrwx。 mysql mysql 测试

系统中的其他平台已经启动并运行了mysqld,并且能够使用service启动或停止。

【问题讨论】:

  • /var/lib/mysql/ibdata1 及其父母和兄弟姐妹的权限和所有权是什么?你也应该发布它。
  • @alvits 全部归 mysql:mysql 和 rwx 所有
  • SELINUX 的状态是什么?运行getenforce 进行检查。
  • @alvits 谢谢,这就是答案。 setenforce Permissive 使它工作。我将它与它运行的平台进行了比较,它在那里被禁用。将此作为答案,以便我接受。
  • 我发布了我的答案。很高兴它对您有所帮助。

标签: mysql


【解决方案1】:

SELINUX 被强制执行时,所有进程都接受上下文评估。

有几种方法可以解决此问题。

  1. 创建selinux 策略以允许mysqld 打开必要的文件并允许侦听某些端口。这不是一件容易的事,但有资源可以完成。

  2. selinux 设置为permissive。这将允许mysql 运行。这还将从selinux 生成审核消息,您可以使用这些消息为mysql 生成策略。

  3. selinux 设置为禁用。当数据库主机处于安全环境中时,这是不安全的,但可以接受。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    相关资源
    最近更新 更多