在 docker 中恢复 mariadb/mysql 转储时出错

在 docker 中恢复 mariadb/mysql 转储时出错

我在 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:未找到表mysqlinnodb_table_stats

我在使用 mysql 容器时遇到了同样的错误。我做错了什么?我是否正确创建了备份?


更新

我刚刚发现这只发生在我使用 wordpress 数据库时。当我没有将 wordpress 安装到数据库中,而是备份并恢复它时,我不会收到错误。

答案1

不是dump tables in mysql, information_schema, performance_schema-- 它们是系统表。

相关内容