Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将mysql数据库转储转换为postgresql?_Mysql_Sql_Postgresql - Fatal编程技术网

如何将mysql数据库转储转换为postgresql?

如何将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数据库名中出错

myfiledump.sqlfor MySQL

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