【问题标题】:InnoDB error on mariadb oficial docker imagemariadb 官方 docker 映像上的 InnoDB 错误
【发布时间】:2016-04-15 22:00:03
【问题描述】:

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

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

【问题讨论】:

  • ...but log file creation failed。 ...无论发生了什么,它都没有正确创建 innodb 数据库。
  • 是的,我可以看到...但是 docker 容器不应该需要在“部署者”部分进行交互,所以我应该能够通过 docker 命令解决这个问题。我猜……
  • 在重新启动容器之前尝试docker-compose stop 然后docker-compose rm。这是为了确保关联的卷丢失并且您从头开始
  • 停止您的 mariadb 服务器...然后再次启动您的服务器,将 --skip-innodb-use-sys-malloc 添加到您的启动命令中
  • 您好,感谢您的所有建议。我解决了错误,但我不确定如何。我的配置有一些不同的问题,我解决了这个问题作为副作用。对不起,我不能给这个问题“关闭”:-P

标签: mysql docker innodb mariadb


【解决方案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 rm my_volume_name

您的容器现在应该可以正常重启了。

【讨论】:

  • 它是docker volume rm my_volume_name
【解决方案2】:

这对我有用,

docker-compose up -d 

然后

docker-compose down -v

您可能需要终止该卷并重新创建它。更多,

https://linuxize.com/post/how-to-remove-docker-images-containers-volumes-and-networks/#removing-docker-volumes.

【讨论】:

  • 这确实对我有用,谢谢你为什么我一开始不这样做。
【解决方案3】:

我不确定这应该是评论还是答案,但我不想达到字符数限制,所以......

主要是回答@tjheslin1,我怀疑它对其他人没有任何用处。

我已经有好几个月没有使用 docker 了,但在某些时候,我确实设法用这段代码完成了这项工作:

https://github.com/MiquelAdell/mariadb-utf8mb4/blob/master/Dockerfile

我不确定是什么,我现在的环境有很多动人的部分。

我现在没有时间重新创建上述环境以提供更多帮助,但我不想让那些绊倒在那里的人永远等待。

我想我应该关闭未回答的问题,因为我将无法很快跟进。

对不起:-\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    相关资源
    最近更新 更多