无法在 CentOS 上启动 MySQL

无法在 CentOS 上启动 MySQL

我刚刚在 CentOS 机器上安装了新版本的 MySQL。我遇到的问题是,当我运行此命令时:

# service mysqld start

我在控制台中收到此错误消息:

[错误] 无法将数据目录所有者更改为 mysql

我不太清楚这是什么意思,也不知道该如何解决。欢迎提出任何意见和解决方案。谢谢!

编辑

好像我已经用以下方法修复了它:

chown -R mysql /var/lib/mysql

但同样的命令# service mysqld start现在会导致另一条错误消息:

[错误] --已指定初始化,但数据目录中有文件。正在中止

确实有文件,因为在安装过程中 CentOS 本身创建了这个文件夹/var/lib/mysql并在其中放了一些文件。我没有手动做任何事情。那么,CentOS 到底怎么了,如何修复它?谢谢!

编辑

看起来 MySQL 或 CentOS 都疯了。问题是,如果我从数据目录中删除所有文件,在启动时(当我运行 时#service mysqld start)它会在其中创建一堆文件,例如ca-key.pem和其他.pem文件。因此,它会创建文件然后抛出一个错误,即数据目录不为空。多么愚蠢的行为!但我该如何解决这一切呢???

答案1

我在 Kubernetes 和 MySQL 5.7 上也遇到了类似的问题。

添加来自的建议约西夫基我的容器的定义使事情正常运作。

新的 ext4 磁盘分区通常不是空的;有一个 lost+found 目录,mysql 会因为这个目录而阻塞。您可以尝试在 CMD 中添加 --ignore-db-dir=lost+found 来确定(来自mysql 文档

以下是我的工作 YAML 定义的摘录:

name: mysql-master
image: mysql:5.7
args:
  - "--ignore-db-dir=lost+found"

以下是 docker-compose 中的一个示例代码片段,用于说明:

version: '3'
services:
  mysql-master:
    image: mysql:5.7
    command: [--ignore-db-dir=lost+found]
    environment:
      - MYSQL_ROOT_PASSWORD=root

答案2

我在引导 percona xtradb 时遇到了这个问题。
请执行以下操作:

rm -rf /var/lib/mysql/*

然后重新启动 mysql。如果它不起作用,您需要完全重新安装 mysql
当您不正常地正常终止 mysql 进程时,就会发生这种情况。
您是否在没有执行任何操作的情况下重新启动了 centos?

systemctl stop mysql

相关内容