Percona 启动失败:mysql 无法访问文件创建的目录

Percona 启动失败:mysql 无法访问文件创建的目录

我发现了一些针对类似问题的问题和建议,但不幸的是,对我来说似乎没有任何作用,所以如果这是重复的,请原谅我(并指向正确的来源)......

服务器是 Fedora Beefy Miracle,安装了 percona mysql 服务器。我对安装不太了解,初始设置后很久才来。现在数据库服务不起作用。

Percona 启动:

# service percona start
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/home/percona/data/example.domain.pid).

MySQL 配置:

/home/percona 中有相当详细的 my.cnf(链接到 percona 安装目录),它指向 /home/percona/data 处的 datadir。在 /etc/config 中有:

# cat /etc/my.cnf    
[mysqld]
datadir=/var/lib/mysql
(...)
[mysqld_safe]
log-error=/var/log/mysqld.log

我不确定这个配置是否正在使用,以及如何调用 mysql:我是 Percona 新手,设置是由其他人完成的。但是,每次 (尝试) 启动 Percona 服务时,日志文件都会更新,并出现以下错误:

# tail /var/log/mysqld.log
140814  0:55:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

这个错误似乎很常见,尽管谷歌讨论通常提到“打开”模式而不是“创建”。另外,我不知道应该在哪个目录中创建文件。具有此名称的文件存在于 /var/lib/mysql/ 和 /home/percona/data/

迄今为止已检查并尝试过:

  • 将 /home/percona 的所有者递归设置为 percona:mysql、mysql:mysql 并返回到正常的 percona:percona;
  • 将 /var/lib/mysql 的所有者递归设置为 mysql:percona、percona:percona 并恢复为正常的 mysql:mysql;这两个用户都存在于系统中。
  • 两个目录中现有 ibdata1 文件的权限均为 660
  • 尝试将两个目录中的 ib* 文件以及目录本身的权限临时设置为 777(以检查哪个用户可以访问/修改/创建文件 - 什么也没发生,什么也没有改变;
  • 建议在某处'mysql_upgrade'产生:

    # mysql_upgrade 
    Looking for 'mysql' as: mysql
    Looking for 'mysqlcheck' as: mysqlcheck
    FATAL ERROR: Upgrade failed
    

    (从控制台运行的mysqlcheck显示一些输出,没有错误指示)。

  • 我不敢运行 mysql_install_db,因为我不确定在此过程中会丢失或覆盖什么——机器上之前运行着数据库,而且我确信我不完全了解配置。

我下一步应该尝试什么,或者我错过了什么?

答案1

我觉得你的路径有些错误。你发现的大多数帖子都是关于“打开”的,因为大多数情况下这是权限问题,但路径是正确的。当你看到关于“创建”的错误时,这是​​因为(通常)my.conf 告诉服务查找文件的路径不是遏制它们。

找到以下任意一项:

nnodb_data_home_dir = 
innodb_log_group_home_dir = 
innodb_log_arch_dir = 

然后验证提供的路径是否正确。我猜是错误的。如果是这个问题,在您修复这些问题后,如果您有任何未解决的权限问题,您可以运行:

chown -R mysql:mysql /path/to/data

相关内容