mysql - 关于 mysqldump 和 Microsoft Azure 的问题
问题描述
我需要转储 Microsoft Azure 上托管的数据库。
我尝试了以下操作:
1. 使用 MySQL Workbench 连接到 db。
2. 选择数据导出并使用它。警告消息显示“mysqldump(8.0.12) 的不等版本和要转储的 MySQL 服务器(5.7.21) 可能会导致问题”。
3. MySQL 社区安装程序没有可用的升级。
那么问题出在哪里:
1.如何获取所需版本的mysqldump?
2. mysqldump 版本似乎比需要的高,但它仍然无法正常工作。为什么?
所有尝试都有以下日志:
18:59:01 Dumping schedule-system (all tables)
Running: "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" --defaults-file="c:\users\myrce\appdata\local\temp\tmp2jqnwp.cnf" --user=jesper@omsu-projects --host=omsu-projects.mysql.database.azure.com --protocol=tcp --port=3306 --default-character-set=utf8 --skip-triggers "schedule-system"
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'schedule-system' AND TABLE_NAME = 'classroom';': Unknown table 'column_statistics' in information_schema (1109)
Operation failed with exitcode 2
18:59:06 Dumping recruiting-server (all tables)
Running: "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" --defaults-file="c:\users\myrce\appdata\local\temp\tmpobvhuq.cnf" --user=jesper@omsu-projects --host=omsu-projects.mysql.database.azure.com --protocol=tcp --port=3306 --default-character-set=utf8 --skip-triggers "recruiting-server"
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'recruiting-server' AND TABLE_NAME = 'companies';': Unknown table 'column_statistics' in information_schema (1109)
Operation failed with exitcode 2
18:59:10 Export of C:\Users\myrce\Desktop\data.sql has finished with 2 errors
解决方案
Hei Jesper,我想您使用的是 Azure Database for MySQL 服务器。我也用它,我也遇到了同样的问题。我为解决问题所做的步骤:
卸载工作台并安装最新版本 8.0.12
- 在 Workbench 路径:Edit/Preferences/Administration 中,我定义了从 Mysql 5.7.21 下载并解压缩的 mysqldump.exe。
记得在路径中定义长 MySQL 会话超时:edit\preferences\SQLEditor
推荐阅读
- python - 如何使用 mypy 库更正类型错误
- angular - 将 StencilJS 中的 angular-output-target 绑定更新为 v0.0.5。在我的 Angular 示例应用程序中看到事件触发了两次
- python - 不要将 lambda 函数应用于缺失值
- powershell - 比较 2 个大文件夹
- python - 根据另一列中的值及其索引生成新列
- typescript - 在 Typescript 中,如何将对象声明为接口及其声明值的组合?
- reactjs - TypeScript 未定义的对象类型搞砸了
- mysql - 在 MySql 中,INSERT into ... SELECT 将目标列中的行数加倍
- typescript - Nest.js 无法解决对 TestingModule 的循环依赖
- python - Matplotlib:具有三个(1D)数组的 3D 图的表面上的网格