InnoDB:innodb_system 数据文件“ibdata1”必须可写

InnoDB:innodb_system 数据文件“ibdata1”必须可写

首先,我不是后端人员。

我的 ubuntu 服务器上有一个正在运行的 mysql 实例。我能够登录,运行一些基本查询,一切都很顺利。

我停止了服务,开始胡乱尝试让 mysql 以 --skip-grant-table 模式启动,这样我就可以导入一个旧的转储文件,然后需要升级。我尝试了各种命令,例如mysqld --skip-grant-tables和其他命令,但很可能表明我不太确定自己在做什么,而且文档几乎找不到。我一直在尝试按照说明进行操作这里

阅读:此时非常恼火。

现在我甚至无法再启动该服务,并且收到一系列警告,随后出现一系列错误:

017-08-04T07:23:17.065571Z 0 [Warning] Can't create test file /var/lib/mysql/hq-lampsvr.lower-test
2017-08-04T07:23:17.065614Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.19) starting as process 12175 ...
2017-08-04T07:23:17.068092Z 0 [Warning] Can't create test file /var/lib/mysql/hq-lampsvr.lower-test
2017-08-04T07:23:17.068122Z 0 [Warning] Can't create test file /var/lib/mysql/hq-lampsvr.lower-test
2017-08-04T07:23:17.092298Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2017-08-04T07:23:17.092320Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2017-08-04T07:23:17.092325Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error

我做错了什么,如何让 mysql 再次启动,有谁知道如何让这种“安全模式”mysql 类型的东西启动,因为 mysql 文档中没有任何内容可以工作。从全新安装开始。

Ubuntu:16.04
Mysql:5.7.19

答案1

你可以尝试这个代码:

chown -R mysql:mysql /var/lib/mysql

答案2

我遇到了同样的问题,在编辑此文件 /etc/apparmor.d/local/usr.sbin.mysqld 并查看此链接后解决了这个问题

https://askubuntu.com/questions/758898/mysql-wont-start-after-changing-the-datadir-14-04-mysql-5-7/795710#795710

也许可以帮助你

答案3

当我收到同样的错误时,我打开 DOS 提示符并转到 MySQL bin\ 目录并发出以下命令来了解导致问题的原因:

..\bin >mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --standalone --console

它向我展示了错误,例如

[错误] [MY-012611] [InnoDB] 文件操作中出现操作系统错误编号 32。

[错误] [MY-012615] [InnoDB] 此错误表示另一个程序正在使用 InnoDB 的文件。这可能是备份或防病毒软件或其他程序。

因此防病毒软件正在锁定文件(您的情况中的错误可能不同),当我再次运行上述命令时,这次 mysql 作为独立程序启动。

还有一些需要注意的点 -

  • 关闭控制台时,MySQL 将停止。因此,为了永久运行它,应在修复错误后将 mysql 作为服务启动。
  • 在 Windows 中,mysql 服务多次显示为已停止,但无法启动,因为进程仍在使用中(不知道为什么)。因此,重新启动服务器可以解决这个问题。

相关内容