DataGrip 是Jetbrain 家族中和Navicat Premium 媲美的一款数据库管理工具。

1. 如何使用 DataGrip 实现数据库迁移?

这篇文章分享下如何使用 DataGrip 实现数据库迁移。

  1. 选中数据库,右键 选择Export With ‘mysqldump’ (低版本可能原来叫Dump With ‘mysqldump’ )
    在这里插入图片描述
  2. 然后点击Run即可。
    在这里插入图片描述
  • 如果执行出错,可考虑使用追加 --column-statistics=0 兼容MySQL 5语法。
  • 会默认在 /Users/${用户}目录下生成:xxx_database-2021_12_05_12_58_18-dump.sql
  • 如果找不到选中文件,可以右键
    在这里插入图片描述
  1. 数据库还原数据
  • 选择dev_db, 右键,导入刚才导出的xxx_database-2021_12_05_12_58_18-dump.sql
    在这里插入图片描述
  • 这里需要使用mysql命令,路径默认不正确的话需要手动指定修改。
    在这里插入图片描述

1.2 选项含义

选项含义
Path to mysqldumpmysql 安装目录bin目录下有一个叫做mysqldump.exe 或mysqldump 的可执行文件
Statements有两个选项 insert 或insert with columns
Databases当前选中的是哪个数据库右键,显示的就是哪个数据库
Tables当前选中的是多个表,就显示逗号分隔,如果选择的是数据库,则这里为空表示该数据库下所有表
其他选项一般默认即可
Out path导出建表语句和数据的SQL文件位置

1.3 示例

1.3.1 整个数据库迁移

Path to mysqldump 思路是导出来数据库建表语句和插入数据,然后执行SQL实现数据库迁移。

Path to mysqldump 详解

/usr/local/mysql/bin/mysqldump
  • 该路径是当前电脑安装MySQL的bin目录下的mysqldump 可执行文件。
  • windows下该文件名称叫做mysqldump.exe
  • Mac OSX 或Linux 叫做mysqldump
  • 如果控制台报错,请配置环境变量
    export PATH=$PATH:/usr/local/mysql/bin
  • 然后刷新下环境变量
    source /etc/profile

该文件路径示例如下:

./
|-- ibd2sdi
|-- innochecksum
|-- libprotobuf-lite.3.11.4.dylib -> ../lib/libprotobuf-lite.3.11.4.dylib
|-- libprotobuf.3.11.4.dylib -> ../lib/libprotobuf.3.11.4.dylib
|-- lz4_decompress
|-- my_print_defaults
|-- myisam_ftdump
|-- myisamchk
|-- myisamlog
|-- myisampack
|-- mysql
|-- mysql_config
|-- mysql_config_editor
|-- mysql_migrate_keyring
|-- mysql_secure_installation
|-- mysql_ssl_rsa_setup
|-- mysql_tzinfo_to_sql
|-- mysql_upgrade
|-- mysqladmin
|-- mysqlbinlog
|-- mysqlcheck
|-- mysqld
|-- mysqld-debug
|-- mysqld_multi
|-- mysqld_safe
|-- mysqldump
|-- mysqldumpslow
|-- mysqlimport
|-- mysqlpump
|-- mysqlshow
|-- mysqlslap
|-- perror
`-- zlib_decompress

1.3.2 Statements 选项 insert 和insert with columns 区别

区别就是插入语句中是否指定列名插入数据。

  • insert
INSERT INTO `t_login_mini_program`
VALUES (8140984646112444416, '2021-10-25 22:30:05.066000', '-', '2021-10-27 00:31:31.531000', '星云', '4444'),
       (8153476439347101696, '2021-11-29 09:48:00.662000', '-', '2021-11-29 10:51:03.234000', '',
        'ompww5W0e0oZfAsA7zyZMXSEGXkU');
  • insert with columns
INSERT INTO `t_login_mini_program` (`id`, `create_date`, `mobile_phone`, `update_date`, `wx_nick_name`, `wx_open_id`)
VALUES (8140984646112444416, '2021-10-25 22:30:05.066000', '-', '2021-10-27 00:31:31.531000', '星云', '4444'),
       (8153476439347101696, '2021-11-29 09:48:00.662000', '-', '2021-11-29 10:51:03.234000', '',
        'ompww5W0e0oZfAsA7zyZMXSEGXkU');

1.3.3 选择多张表迁移数据

鼠标勾选多张表,右键
在这里插入图片描述

2. 如何使用DataGrip做单表数据迁移?

如果有时候不需要更新同步整个数据库,可以考虑使用单表复制迁移。

  1. 选中原始库中的表,右键
    在这里插入图片描述
  2. 选择目标数据库和目标表
    在这里插入图片描述
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐