如何将mysql数据库转储转换为postgresql?
myfiledump.sqlfor MySQL如何将mysql数据库转储转换为postgresql?,mysql,sql,postgresql,Mysql,Sql,Postgresql,myfiledump.sqlfor MySQL MySQL dump 10.13 Distrib 5.7.20, for Win64 (x86_64) 文件集中编码cp1251 正常恢复psql数据库名中出错
MySQL dump 10.13 Distrib 5.7.20, for Win64 (x86_64)
文件集中编码cp1251正常恢复
psql数据库名中出错
:
ERROR: invalid byte sequence for encoding "UTF8": 0xd3 0xc0
我需要转换它,以便在postgresql中还原它。有插件吗?还是方法?您可以告诉
psql
SQL脚本的编码是什么:
PGCLIENTENCODING=WIN1251 psql -d databasename -f /path/to/dump/dump.sql
错误很明显。当您说将脚本文件保存为CP1251时,您试图将其读取为UTF8。另存为UTF8。转储不是备份,而是SQL脚本。你没有恢复任何东西,你正在执行一个脚本。如果您使用了错误的代码页,那么最终可能会出现乱码文本。如果脚本包含对Postgres无效的语法,您仍然会遇到问题。谢谢。但是现在psql:/home/path/to/dump/dump.sql:7988:ERROR:syntax ERROR在“`”处或附近,我不可能在注释中修复MySQL和PostgreSQL之间的所有语法差异。但你的编码问题似乎已经解决了,对吧?您是否尝试过mysqldump--compatible=postgresql?