升级到php 5.5(我知道它老了)并更新了我的phpMyAdmin版本,以及MySQL到5.7,现在MySQL不会启动......
查看mysqld日志:
2018-03-16T16:35:54.553247Z 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
2018-03-16T16:35:54.553310Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2018-03-16T16:35:55.153859Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2018-03-16T16:35:55.153924Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2018-03-16T16:35:55.153944Z 0 [ERROR] Failed to initialize builtin plugins.
2018-03-16T16:35:55.153964Z 0 [ERROR] Aborting
有人可以告诉我为什么会发生这种情况。
答案 0 :(得分:1)
配置文件/etc/my.cnf包含一个innodb_xxxx,它引用一个大小为768页的自动扩展。这可以包括像
这样的参数innodb_data_home_dir
innodb_data_file_path中
完整语法描述此值
file_name:file_size[:autoextend[:max:max_file_size]]
实施例
innodb_data_file_path=/var/lib/mysql/ibdata1:768M:autoextend
如果您可以访问以前工作的MySQL(就像您朋友的另一台服务器一样),请登录mysql客户端并输入以下内容以查看正在运行的配置
> SELECT @@GLOBAL.innodb_data_file_path;
+--------------------------------+
| @@GLOBAL.innodb_data_file_path |
+--------------------------------+
| ibdata1:10M:autoextend |
+--------------------------------+
您的innodb存储文件小于my.cnf配置中指定的初始大小。
希望这澄清事项。
答案 1 :(得分:0)
我遵循了您的建议并提出了解决方案,大约用bash行2行,您就可以了。启动某些mysql / mariadb服务器或docker映像时,我看到以下消息:
自动扩展的innodb_system数据文件'./ibdata1'具有 与.cnf文件中指定的0页大小不同:初始768 页,最多0页(如果非零则相关)!
然后检测到先前的安装,并且数据文件空间不兼容。一个简单直接的解决方案是删除可能备份在主机上的现有容器映像。快速启动Docker rmi
命令已准备就绪,可以执行干净但不可逆的操作,您应该知道Docker映像的名称是什么,例如mariadb:
docker rmi `docker images | grep mariadb | awk '{print $3}'`
重试运行新的mysql映像:
docker run -it mypersonalrepo/mariadb:latest &
将使用InnoDB 768M空间数据初始化数据库。