mysqldump能够导出表结构信息和表内数据,并转化成SQL语句的格式方便用户直接导入,SQL语法如下:
DROP TABLE IF EXISTS `table_name`;
CREATE TABLE `table_name` (
`id` int(11) NOT NULL,
`k` int(11) NOT NULL DEFAULT '0',
...
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 dbpartition by hash(`id`);
INSERT INTO `table_name` VALUES (...),(...),...;
INSERT INTO `table_name` VALUES (...),(...),...;
...mysqldump工具导出数据的命令使用方式举例:
mysqldump -h ip -P port -u user -pPassword --default-character-set=char-set --net_buffer_length=10240 --no-create-db --no-create-info --skip-add-locks --skip-lock-tables --skip-tz-utc --set-charset [--hex-blob] [--no-data] database [table1 table2 table3...] > dump.sqlmysqldump的参数说明可通过mysqldump --help命令查看或查询MySQL 官方文档,常用参数说明如下,请根据实际情况输入:
| 参数名 | 说明 |
|---|---|
| ip | PolarDB-X实例的IP。 |
| port | PolarDB-X实例的端口。 |
| user | PolarDB-X的用户名。 |
| password | PolarDB-X的密码,注意前面有个-p,之间没有空格。 |
| char-set | 指定的编码。 |
| --hex-blob | 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响的字段类型包括BINARY、VARBINARY、BLOB。 |
| --no-data | 不导出数据。 |
| table | 指定导出某个表。默认导出该数据库所有的表。 |
| --no-create-info | 不导出建表信息。 |
| --net_buffer_length | 传输缓冲区大小。影响Insert语句的长度,默认值1046528。 |
导出的SQL语句格式文件,有两种方法导入数据库中:
- SOURCE语句导入数据
- 登录数据库。
mysql -h ip -P port -u user -pPassword --default-character-set=char-set - 通过source语句执行文件中的sql语句导入数据。
source dump.sql
- 登录数据库。
- MySQL命令导入数据
mysql -h ip -P port -u user -pPassword --default-character-set=char-set< /yourpath/dump.sql
下面从不同场景介绍mysqldump工具的使用实例。
PolarDB-X和MySQL之间数据传输时不推荐导出表结构,因为PolarDB-X包含分库分表功能,CREATE TABLE(DRDS模式)中的拆分函数等与MySQL不兼容,不兼容的关键字包括:
- DBPARTITION BY hash(partition_key)
- TBPARTITION BY hash(partition_key)
- TBPARTITIONS N
- BROADCAST
如果导出表结构,需在导出的SQL语句文件中修改建表语句,才能正确导入。所以推荐只导出表内数据,手动登录数据库进行建表操作,然后再导入数据。
最后修改时间:2023-07-17 10:58:41
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




