想装个小说站来玩玩,结果数据库是 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=# \q1.首先,我们需要删除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
来源:黑客派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。