MySQL转PostgreSQL迁移:pgloader无报错但未导入数据
验证MySQL连接与权限
用MySQL客户端直接连接源库,确认能正常访问且存在数据:mysql -u user -p -h 127.0.0.1 db_name
同时确保该MySQL用户拥有源库的SELECT权限,否则pgloader无法读取数据。验证PostgreSQL连接与权限
用psql连接目标库,确认连接正常且用户有写入权限:psql -U pgloader_pg -h 127.0.0.1 pg_db_name
目标用户需要具备CREATE TABLE、INSERT等权限,否则无法创建表或写入数据。启用详细日志排查
执行pgloader时添加--verbose参数输出详细执行过程,或指定日志文件记录细节:pgloader --verbose mysql://user:password@127.0.0.1/db_name postgresql://pgloader_pg:password@127.0.0.1/pg_db_name
详细日志会暴露隐性问题,比如表过滤规则、连接阶段的静默错误等。确认源库数据与库名正确性
检查源MySQL库是否确实存在数据,同时注意库名的大小写(部分系统下MySQL库名大小写敏感),避免连接到错误的空库。更换pgloader稳定版本测试
你使用的是3.6.7~devel开发版,可能存在未修复的bug导致静默失败,建议下载安装最新稳定版(如3.6.10)重新执行导入命令。检查目标库表结构与数据
登录目标PostgreSQL库,查看是否已创建对应表结构,若表存在但无数据,说明pgloader完成了表结构同步但数据插入环节出现隐性失败,结合详细日志进一步排查。
内容的提问来源于stack exchange,提问作者GanesH RahuL

