首先,我不是后端人员。
我的 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
并查看此链接后解决了这个问题
也许可以帮助你
答案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 服务多次显示为已停止,但无法启动,因为进程仍在使用中(不知道为什么)。因此,重新启动服务器可以解决这个问题。