PostgreSQL编码问题
栏目: 数据库 · PostgreSQL · 发布时间: 8年前
内容简介:PostgreSQL编码问题
唔,其实算是不务正业的项目,最近看的小说站一直被人攻击,所以打算自己跑个自己看……(有够闲的),因为是 Linux 环境,所以打算用易读的程序,这个用的是PostgreSQL,也是第一次接触,本来以为全是默认配置,也不用我去管啥,结果还真碰到了点问题,所以在这Record一下了。
这个是在安装页面配置网站的时候点击确认后会出现的,基本上就是导入数据库的时候出错了,错误代码如下
"ERROR: newencoding (UTF8) is incompatible with theencoding of the template database (SQL_ASCII) Hint: Use the sameencoding as in the template database, or use template0 as template."
网上搜了下还算是PostgreSQL的经典错误……也是醉了,还有一个经典错误我在之后也碰到了_(:з」∠)_,就是默认只允许一个用户访问,所以如果已登录的用户不退出去,其它程序(用户)就不能访问了……所以请记得在操作后正常退出
解决方法的话不急,我们先来看下原因,简单从错误上看,就是编码问题,新编码 (UTF8) 与模板数据库的 (SQL_ASCII)不相同,所以无法成功导入。我稍微了解了下,这可能与系统在安装PostgreSQL时设置的Locale不是UTF-8有关,毕竟Centos系统默认的Locale好像挺蛋疼,更改Locale的方法在我以前的文章应该能找到来着,所以这边不提了。
su - postgres //切换到postgres用户 psql -U postgres //连接数据库 update pg_database set datallowconn = TRUE where datname = 'template0'; \c template0 update pg_database set datistemplate = FALSE where datname = 'template1'; drop database template1; create database template1 with template = template0 encoding = 'UTF8'; update pg_database set datistemplate = TRUE where datname = 'template1'; \c template1 update pg_database set datallowconn = FALSE where datname = 'template0';
一行行跑完,然后退出PostgreSQL(请务必退出,不要留着连接进程……),然后重新点击安装向导的确认就没问题了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
零售的哲学:7-Eleven便利店创始人自述
[日] 铃木敏文 / 顾晓琳 / 江苏文艺出版社 / 2014-12-1 / 36
全球最大的便利店连锁公司创始人——铃木敏文,结合40多年零售经验,为你讲述击中消费心理的零售哲学。铃木敏文的很多创新,现在已经成为商界常识,本书把那些不可思议的零售创新娓娓道来。关于零售的一切:选址、订货、销售、物流、管理……他一次又一次地在一片反对声中创造出零售界的新纪录。 翻开本书,看铃木敏文如何领导7-11冲破层层阻碍,成为世界第一的零售哲学。一起来看看 《零售的哲学:7-Eleven便利店创始人自述》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
Base64 编码/解码
Base64 编码/解码