-
安装
pgloader
docker pull dockerpull.org/dimitri/pgloader
-
运行容器
sudo docker run --rm -it dockerpull.org/dimitri/pgloader bash
-
在容器中执行
pgloader mysql://admin:123456@10.10.1.109:3306/data postgresql://admin:123456@10.10.1.111:5432/data
如果表数据很多,加入参数
pgloader --with "prefetch rows = 1000" ...
-
使用配置文件
# 如果数据比较大的话,这样试一下 LOAD DATABASE FROM mysql://admin:123456@10.10.1.109:3306/data INTO postgresql://admin:123456@10.10.1.111:5432/data INCLUDING ONLY TABLE NAMES MATCHING 'table1', 'table2' WITH include drop, create tables, create indexes, reset sequences, batch size = 4GB, prefetch rows = 1000 SET work_mem to '64 MB', maintenance_work_mem to '512 MB', statement_timeout to '36000s'; # 执行 sudo vi config.load sudo sudo docker run --name pgloader -v .:/home/x dockerpull.org/dimitri/pgloader pgloader /home/x/config.load sudo docker restart ce14a5edacea # 如果修改过配置 sudo docker logs -n 50 -f ce14a5edacea
附:从 sql 载入数据至 mysql .\mysql.exe -u root --default-character-set utf8mb4 --database data < C:\Users\sql_data\basic.sql -p123456