背景描述
mysql客户端大家一般都用navicat,navicat的导入导出数据功能很方便,选中需要导出的表Ctrl+C,然后到需要导出的库Ctrl+V就可以了。最近我在研究datagrip的使用,用过idea的都知道,是jetbrains全家桶里的一份子,代码提示功能很强大,但导入导出有点复杂,这篇博客主要就是记录一下具体的操作流程。
版本
DataGrip:2020.1
Mysql:8.0.18
说明:mysql8和mysql5变化有点大,导入导出的时候,两个版本的情况不同,这里是按mysql8来解决各种问题。
具体操作
导出
选中需要导出的库或者表,选择库即导出库下所有的表,选中某个表即导出单张表。右键选中Export with 'mysqldump'
参数说明:
-
--column-statistics=0
导出时抛出 “Unknown table ‘COLUMN_STATISTICS’ in information_schema (1109)” 错误,这是因为当前执行导出操作的 MySQL 版本是 8.x+ ,但需要被导出的数据库是由之前版本创建的。在 MySQL 8.x 之前的版本中,information_schema 数据库中没有 COLUMN_STATISTICS 数据表,添加
--column-statistics=0
即可忽略这个表。
摘自:https://www.jianshu.com/p/0a3d13cae438 -
--lock-all-tables -x
导出时抛出 “does not exist when using LOCK TABLES” 错误,其实是数据库当前处于连接被使用状态,所以 MySQL 认为直接导出会出现数据不一致,添加
--lock-all-tables -x
即可。该操作实际上就是在导出时锁定所有表。
摘自:https://www.jianshu.com/p/0a3d13cae438 -
--set-gtid-purged=OFF
导入时,提示“@@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED”错误。出现该问题的原因主要是MySQL数据库支持GTID复制,支持主从复制。添加
--set-gtid-purged=OFF
即可避免该问题。
摘自:https://www..com/article/28521101712/
导入
选中需要导入的库,右键选中Restore with 'mysql'
点Run
就可以直接导入成功了。
选择Run SQL Script
后选择要导入的sql文件,也可以导入成功。