我有一个非常奇怪的错误。我已经能够将它归结为一个非常简单的案例,但我不知道我是否发现了错误或者是否遗漏了某些要点。
问题是我需要一个 mariadb 容器,我可以使用以下命令完美地运行它:
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mariadb
但它因以下 docker-compose.yml 文件而失败:
wordpress_db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=foo
除其他外,它会输出:
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: The InnoDB memory heap is disabled
我可以清楚地识别为错误的第一条消息是:
wordpress_db_1 | InnoDB: No valid checkpoint found.
(你可以在文章末尾看到完整的输出)
如果我将 mariadb 切换为 mysql,则不会发生这种情况。
谁能帮帮我?
谢谢!
输出:
Starting miqueladell_wordpress_db_1
Attaching to miqueladell_wordpress_db_1
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] mysqld (mysqld 10.1.10-MariaDB-1~jessie) starting as process 1 ...
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Using mutexes to ref count buffer pool pages
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: The InnoDB memory heap is disabled
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Memory barrier is not used
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Compressed tables use zlib 1.2.8
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Using Linux native AIO
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Using SSE crc32 instructions
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Initializing buffer pool, size = 256.0M
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Completed initialization of buffer pool
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: Highest supported file format is Barracuda.
wordpress_db_1 | InnoDB: No valid checkpoint found.
wordpress_db_1 | InnoDB: If this error appears when you are creating an InnoDB database,
wordpress_db_1 | InnoDB: the problem may be that during an earlier attempt you managed
wordpress_db_1 | InnoDB: to create the InnoDB data files, but log file creation failed.
wordpress_db_1 | InnoDB: If that is the case, please refer to
wordpress_db_1 | InnoDB: http://dev.mysql.com/doc/refman/5.6/en/error-creating-innodb.html
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [ERROR] Plugin 'InnoDB' init function returned error.
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] Plugin 'FEEDBACK' is disabled.
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [ERROR] Unknown/unsupported storage engine: InnoDB
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [ERROR] Aborting
wordpress_db_1 |
miqueladell_wordpress_db_1 exited with code 1
最佳答案
我在使用 Docker Hub 的 Maria_DB 官方镜像时遇到了同样的问题。 它曾在 maria_DB 版本 10.5 上工作过一次,但是当我降级到 10.3 时,我遇到了同样的错误。
错误是之前容器的体积导致的,你必须删除它。
首先,停止容器(你可以通过 docker ps 获取 docker cotnainer id):
docker stop xxxxx
然后删除它:
docker rm xxxxx
最后,删除关联的容器:
docker volume ls
docker volume rm my_volume_name
您的容器现在应该可以毫无问题地重新启动。
关于mysql - mariadb 官方 docker 图像上的 InnoDB 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724156/