Miq*_*ell 5 mysql innodb mariadb docker
我有一个非常奇怪的错误.我已经能够把它归结为一个非常简单的案例,我不知道我是否发现了一个错误,或者我是否遗漏了一些问题.
问题是我需要一个mariadb容器,我可以使用以下命令完美地运行它:
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mariadb
Run Code Online (Sandbox Code Playgroud)
但它失败了以下docker-compose.yml文件:
wordpress_db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=foo
Run Code Online (Sandbox Code Playgroud)
除其他外,它ouptuts:
wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: The InnoDB memory heap is disabled
Run Code Online (Sandbox Code Playgroud)
我能清楚地认识到的第一条消息是错误:
wordpress_db_1 | InnoDB: No valid checkpoint found.
Run Code Online (Sandbox Code Playgroud)
(你可以看到帖子末尾的完整输出)
如果我为mysql切换mariadb,就不会发生这种情况.
谁能帮我?
谢谢!
输出:
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
Run Code Online (Sandbox Code Playgroud)
Pau*_*gac 11
我对 Docker Hub 的 Maria_DB 官方镜像也有同样的问题。它曾经在 maria_DB 版本 10.5 上工作过,但是当我降级到 10.3 时,我遇到了同样的错误。
该错误是由于之前的容器的体积引起的,必须将其删除。
首先,停止容器(您可以使用 docker ps 获取 docker cotnainer id):
docker stop xxxxx
Run Code Online (Sandbox Code Playgroud)
然后删除它:
docker rm xxxxx
Run Code Online (Sandbox Code Playgroud)
最后,删除关联的卷:
docker volume ls
docker volume rm my_volume_name
Run Code Online (Sandbox Code Playgroud)
您的容器现在应该可以毫无问题地重新启动。
这对我有用,
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
然后
docker-compose down -v
Run Code Online (Sandbox Code Playgroud)
您可能需要终止该卷并重新创建它。更多关于,
我不确定这应该是评论还是答案,但我不想达到字符限制,所以 \xe2\x80\xa6
\n\n主要是为了回答@tjheslin1,我怀疑这对其他人是否有任何用处。
\n\n我已经好几个月没有使用 docker 了,但是在某些时候我确实设法使用以下代码来完成这项工作:
\n\nhttps://github.com/MiquelAdell/mariadb-utf8mb4/blob/master/Dockerfile
\n\n我不确定当时发生了什么,我现在的环境有很多变化。
\n\n我现在没有时间重新创建上述环境来提供更多帮助,但我不想让那些在那里绊倒的人永远等待。
\n\n我想我应该关闭这个未回答的问题,因为我无法很快跟进它。
\n\n对不起 :-\\
\n