想装个小说站来玩玩,结果数据库是 postgresql,到创建数据库的时候出现如下错误
“ERROR: new encoding (UTF8) is incompatible with the encoding of the template”
网上查了下,大概说的是系统默认没有设置为 utf8 的话就会出现这个错误。
解决的方法也很简单,删了在从重新创建一个就好。
步骤如下:
1.首先,我们需要删除template1的。模板不能被删除,所以我们首先修改它,设置成一个普通的数据库:
登陆postgresql
[root@ root]# su - postgres;
-bash-4.1$ psql
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
2.现在,我们可以删除它:
postgres=# DROP DATABASE template1;
3.然后,重新创建一个template1数据库,设置默认编码:
postgres=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
4.在把template1设置成为默认模板。
postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
5.最后切换模板就可以了
postgres=# \c template1
template1=# VACUUM FREEZE;
template1=# \q
1.首先,我们需要删除template1的。模板不能被删除,所以我们首先修改它,设置成一个普通的数据库:
登陆postgresql
[root@ root]# su - postgres;
-bash-4.1$ psql
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
2.现在,我们可以删除它:
postgres=# DROP DATABASE template1;
3.然后,重新创建一个template1数据库,设置默认编码:
postgres=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
4.在把template1设置成为默认模板。
postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
5.最后切换模板就可以了
postgres=# \c template1
template1=# VACUUM FREEZE;
template1=# \q
到这里应该就可以了
作者:fly
链接:https://hacpai.com/article/1478711156804
来源:黑客派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。














