如何使用DataGrip执行数据库数据和表数据迁移?
DataGrip 是Jetbrain 家族中和Navicat Premium 媲美的一款数据库管理工具。
1. 如何使用 DataGrip 实现数据库迁移?
这篇文章分享下如何使用 DataGrip 实现数据库迁移。
- 选中数据库,右键 选择Export With ‘mysqldump’ (低版本可能原来叫Dump With ‘mysqldump’ )
- 然后点击Run即可。
- 如果执行出错,可考虑使用追加
--column-statistics=0
兼容MySQL 5语法。- 会默认在 /Users/${用户}目录下生成:xxx_database-2021_12_05_12_58_18-dump.sql
- 如果找不到选中文件,可以右键
- 数据库还原数据
- 选择dev_db, 右键,导入刚才导出的
xxx_database-2021_12_05_12_58_18-dump.sql
- 这里需要使用mysql命令,路径默认不正确的话需要手动指定修改。
1.2 选项含义
选项 | 含义 |
---|---|
Path to mysqldump | mysql 安装目录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做单表数据迁移?
如果有时候不需要更新同步整个数据库,可以考虑使用单表复制迁移。
- 选中原始库中的表,右键
- 选择目标数据库和目标表