mysql - mariadb 官方 docker 图像上的 InnoDB 错误

标签 mysql docker innodb mariadb

我有一个非常奇怪的错误。我已经能够将它归结为一个非常简单的案例,但我不知道我是否发现了错误或者是否遗漏了某些要点。

问题是我需要一个 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/

相关文章:

php - 转义数组中的变量并将转义值动态分配给原始变量值

java - 如何将 JDBC 语句与 EntityManager 结合起来?

docker - 如何保存tcpdump监视容器以供以后分析

reactjs - 无法执行从一个 docker 镜像到另一个 docker 镜像的API请求

适用于 Windows 10 的 ubuntu 应用程序上的 Docker 启动但未运行

mysql - 导入时更改 mysql 表存储引擎

mysql - Laravel 中使用不同查询进行左连接

php - mysql。随机订购位置和加入列表

MySQL InnoDB - 将父级链接到两个子级之一的键的约束

mysql - 与 InnoDB 表的 PDO 事务