从mysql导出数据并在postgresql中导入数据的最简单方法是什么?
我在使用MySQL二进制字段转换时遇到问题。
答案 0 :(得分:4)
在PostgreSQL中,MySQL中的binary
类型相当于bytea
。
您可以使用pgloader(最简单的方式)
安装pgloader后,创建简单脚本test.load
load database
from mysql://username:password@host/database_name
into postgresql://postgres:postgres@localhost/database_name
WITH include drop, create tables, create indexes, reset sequences
SET maintenance_work_mem to '128MB',
work_mem to '12MB'
CAST type binary TO bytea drop typemod using byte-vector-to-bytea;
在您的终端中运行:
pgloader test.load
另一种方法是使用mysqldump
<强> 1。使用hex-blob选项转储
mysqldump -u username -p -h host --skip-quote-names --hex-blob --skip-triggers \
--compact --no-create-info your_db your_table > prepg.dump
<强> 2。请执行此操作以便将其插入bytea
类型列
sed "s/0x\([0-9A-F]*\)/decode('\1','hex')/g" prepg.dump > pg.dump
第3。加载到PostgreSQL表中
\i '/path_to_file/pg.dump'
答案 1 :(得分:0)
使用编辑器生成数据库的mysql脚本,然后尝试使用其中一个sql转换器。我个人之前尝试过这个转换器,效果很好:http://www.sqlines.com/online