加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql 字符集server_encoding变更

发布时间:2020-12-13 17:12:04 所属栏目:百科 来源:网络整理
导读:--今天在使用postgres_fdw做远端数据库转储时,发现本地所使用的字符集与远端是不同的,造成插入数据错误 postgres=# insert into t select * from for_t; ERROR: character with byte sequence 0xe7 0xa6 0xb4 in encoding "UTF8" has no equivalent in enco
--今天在使用postgres_fdw做远端数据库转储时,发现本地所使用的字符集与远端是不同的,造成插入数据错误 postgres=# insert into t select * from for_t; ERROR: character with byte sequence 0xe7 0xa6 0xb4 in encoding "UTF8" has no equivalent in encoding "EUC_CN" CONTEXT: Remote SQL command: SELECT pnr FROM rudy.t --本地的编码 postgres=# select name,setting,context from pg_settings where name like '%encoding%'; name | setting | context -----------------+---------+---------- client_encoding | UTF8 | user server_encoding | EUC_CN | internal --远端的数据库编码 dev=# select name,context from pg_settings where name like '%encoding%'; name | setting | context -----------------+---------+---------- client_encoding | UTF8 | user server_encoding | UTF8 | internal --可以选择导出数据,使用inserts方式,再执行导入 pg_dump -d dev -t rudy.t --data-only --inserts -f /tmp/t.sql psql -l -f /tmp/t.sql --注意使用这种方式导入时比较慢 --如果其中某一行命令出错,那么将仅有该行数据丢失,而不是整个表的数据丢失,即不能做到事务安全 --由于编码的原因会造成一部分数据不能导入成功 ERROR: character with byte sequence 0xe7 0xa6 0xb4 in encoding "UTF8" has no equivalent in encoding "EUC_CN" --也可以重新初始化一个新的数据库集群 --备份整个数据库集群 pg_dumpall -f /tmp/pg_dump.sql mv data/ data_bak initdb -E UTF8 --local=C --覆盖新生成的配置文件 cp ../data_bak/postgresql.conf . cp ../data_bak/pg_hba.conf . --导入之前导出的文件则可 psql -f /tmp/pg_dump.sql

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读