我在 docker 容器中运行 mariadb。我想使用 sql dump 进行备份和恢复。
我创建了用于 wordpress 的数据库,并只创建了一个测试页面。我将 phpmyadmin 安装到同一个数据库中。
我创建了一个这样的备份:
mysqldump \
--all-databases \
--add-drop-database --add-drop-table \
--user=root --password=password \
> seed.sql
然后我像这样挂载了seed.sql
转储:docker-compose.yml
volumes:
- mariadb_data:/var/lib/mysql/
- ./seed_data/:/docker-entrypoint-initdb.d/:ro
然后我删除了mariadb_data
卷和容器,并重新启动了容器。数据库读取了种子脚本,似乎恢复了数据库。
但是,日志显示:
/usr/local/bin/docker-entrypoint.sh:运行/docker-entrypoint-initdb.d/seed.sql
[错误] InnoDB:未找到表
mysql
。innodb_table_stats
我在使用 mysql 容器时遇到了同样的错误。我做错了什么?我是否正确创建了备份?
更新
我刚刚发现这只发生在我使用 wordpress 数据库时。当我没有将 wordpress 安装到数据库中,而是备份并恢复它时,我不会收到错误。
答案1
做不是dump tables in mysql
, information_schema
, performance_schema
-- 它们是系统表。