• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

导入备份文件到postgre

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

导入备份文件到postgre 当导入备份文件到postgre时出现一些如: Unicode characters greater than or equal to 0x10000 are not supported invalid byte sequence for encoding UNICODE: 0xd6 invalid byte sequence for encoding EUC_CN: 0xfb66 …. 如上

导入备份文件到postgre

当导入备份文件到postgre时出现一些如:

Unicode characters greater than or equal to 0x10000 are not supported invalid byte sequence for encoding “UNICODE”: 0xd6 invalid byte sequence for encoding “EUC_CN”: 0xfb66

….

如上的导入出现的某些字符集不支持的问题,现解决如下:

下面我以主和备机进行说明(主机作为备份数据来源,备机作为导入已备份的数据文件):

1、进入主机,执行psql -l命令,例如:

[root@localhost]$ psql -l

List of databases

Name | Owner | Encoding

———–+——-+———-

m本文来源gao@!dai!ma.com搞$$代^@码网*ydata | root | EUC_CN

template0 | root | EUC_CN

template1 | root | EUC_CN

(3 rows)

第三列的Encoding就是对应的库所使用的字符集EUC_CN

也有一种情况是使用psql -l查看所使用的字符集时并没发现Encoding这一列,例如:

[root@localhost]$ psql -l

List of databases

Database | Owner

———–+——-

mydata | root

template0 | root

template1 | root

(3 rows)

那么它所使用的字符集默认就是ISO885915 (注意默认的字符集名字了)

好了,知道了主机的postgre所使用的字符集后,就好办了。

2、进入备机,执行dropdb mydata删除数据库mydata

注意,当使用dropdb mydata后,出现如下信息则说是有进程在连接postgre:

[root@localhost]$ dropdb mydata

dropdb: database removal failed: ERROR: database “mydata” is being accessed by other users

这时,你就必须使用ps ax|grep post查出进程再使用kill ID号来杀掉相关进程了。

使用dropdb必须是postgre已经正常启动,所以当kill进程后,如果postgre没启来就要用pg_ctl start命令来启动它才可以使用dropdb命令。

3、当把数据库mydata删除掉后,就重新创建mbs这一步了,创建方法如下:

createdb -E 字符集 mydata

以上的命令格式中的“字符集”就是对应主机中所使用的字符集,比如主机使用的是EUC_CN,那么使用的命令就是 createdb -E EUC_CN mydata

4、成功创建数据库mydata后,就可以导入主机备份过来的数据文件了。

以上步骤基本解决了导入数据的问题。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:导入备份文件到postgre

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址