- 浏览: 243441 次
最新评论
今天使用pg建库发现两个报错:
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8)
ERROR: source database "template1" is being accessed by other users
建库语句:
CREATE DATABASE tinadb
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
template template1;
报错信息:
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8)
HINT: Use the same collation as in the template database, or use template0 as template.
按照提示,我们应该使用跟模板数据库相同的collation,或者使用模板template0
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rename_check | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
其实我们可以看到template0和template1的collate是一样的,但template0允许建立不同的collation的库
解决办法:
CREATE DATABASE rename_check
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
TEMPLATE template0; --使用template0
另外一个常见的报错信息:
ERROR: source database "template1" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
解决办法:
1.使用pg的另外一个模板库template0
[postgres@kenyon ~]$ createdb -T template0 tinadb -p 5432
Password:
2.杀掉连接到template1的进程,再执行一次建库语句
postgres=# select procpid from pg_stat_activity where DATNAME = 'template1';
procpid
---------
8879
postgres=# \q
[postgres@kenyon ~]$ kill 8879
附带模板库template0 与 template 1以及数据库视图pg_database的说明
1.安装好数据库初始化时,template0与template1都是一样的,是一个干净的库,内容也一样
2.初始化完以后,用户可定制template1,比如新增自定义函数,在创建新库时都会附带该自定义函数而无需在新库里创建
3.一般不允许再对template0进行各种操作,以保证其是个干净的库,对数据库的恢复比较有帮助。
数据库恢复建立新库时可以指定template0为模板,可以创建一个干净的新库
4.创建新库时是不能连接新的session的,而有新的session连在模板库上会导致创建失败
5.视图pg_database的主要字段说明
postgres=# \d pg_database;
Table "pg_catalog.pg_database"
Column | Type | Modifiers
---------------+-----------+-----------
datname | name | not null
datdba | oid | not null
encoding | integer | not null
datcollate | name | not null
datctype | name | not null
datistemplate | boolean | not null
datallowconn | boolean | not null
datconnlimit | integer | not null
datlastsysoid | oid | not null
datfrozenxid | xid | not null
dattablespace | oid | not null
datacl | aclitem[] |
Indexes:
"pg_database_datname_index" UNIQUE, btree (datname), tablespace "pg_global"
"pg_database_oid_index" UNIQUE, btree (oid), tablespace "pg_global"
Tablespace: "pg_global"
datistemplate:可否允许作为模板,如果true,则任何有createdb的用户都可创建,一般用户数据库该值是false
datallowconn 表示可否允许连接,template0一般不允许连接,其他数据库可连接
datconnlimit 表示连接限制,-1表示无限制
postgres=# select * from pg_database;
datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace
| datacl
--------------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+---------------
+--------------------------------------
template1 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | t | -1 | 12772 | 1795 | 1663
| {=c/postgres,postgres=CTc/postgres}
template0 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | f | -1 | 12772 | 1795 | 1663
| {=c/postgres,postgres=CTc/postgres}
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8)
ERROR: source database "template1" is being accessed by other users
建库语句:
CREATE DATABASE tinadb
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
template template1;
报错信息:
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8)
HINT: Use the same collation as in the template database, or use template0 as template.
按照提示,我们应该使用跟模板数据库相同的collation,或者使用模板template0
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rename_check | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
其实我们可以看到template0和template1的collate是一样的,但template0允许建立不同的collation的库
解决办法:
CREATE DATABASE rename_check
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
TEMPLATE template0; --使用template0
另外一个常见的报错信息:
ERROR: source database "template1" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
解决办法:
1.使用pg的另外一个模板库template0
[postgres@kenyon ~]$ createdb -T template0 tinadb -p 5432
Password:
2.杀掉连接到template1的进程,再执行一次建库语句
postgres=# select procpid from pg_stat_activity where DATNAME = 'template1';
procpid
---------
8879
postgres=# \q
[postgres@kenyon ~]$ kill 8879
附带模板库template0 与 template 1以及数据库视图pg_database的说明
1.安装好数据库初始化时,template0与template1都是一样的,是一个干净的库,内容也一样
2.初始化完以后,用户可定制template1,比如新增自定义函数,在创建新库时都会附带该自定义函数而无需在新库里创建
3.一般不允许再对template0进行各种操作,以保证其是个干净的库,对数据库的恢复比较有帮助。
数据库恢复建立新库时可以指定template0为模板,可以创建一个干净的新库
4.创建新库时是不能连接新的session的,而有新的session连在模板库上会导致创建失败
5.视图pg_database的主要字段说明
postgres=# \d pg_database;
Table "pg_catalog.pg_database"
Column | Type | Modifiers
---------------+-----------+-----------
datname | name | not null
datdba | oid | not null
encoding | integer | not null
datcollate | name | not null
datctype | name | not null
datistemplate | boolean | not null
datallowconn | boolean | not null
datconnlimit | integer | not null
datlastsysoid | oid | not null
datfrozenxid | xid | not null
dattablespace | oid | not null
datacl | aclitem[] |
Indexes:
"pg_database_datname_index" UNIQUE, btree (datname), tablespace "pg_global"
"pg_database_oid_index" UNIQUE, btree (oid), tablespace "pg_global"
Tablespace: "pg_global"
datistemplate:可否允许作为模板,如果true,则任何有createdb的用户都可创建,一般用户数据库该值是false
datallowconn 表示可否允许连接,template0一般不允许连接,其他数据库可连接
datconnlimit 表示连接限制,-1表示无限制
postgres=# select * from pg_database;
datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace
| datacl
--------------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+---------------
+--------------------------------------
template1 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | t | -1 | 12772 | 1795 | 1663
| {=c/postgres,postgres=CTc/postgres}
template0 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | f | -1 | 12772 | 1795 | 1663
| {=c/postgres,postgres=CTc/postgres}
发表评论
-
pg 锁
2016-01-14 16:26 0pg 锁 ... -
postgresql 的三类日志
2016-01-14 15:59 18525一、PostgreSQL有3种日志: 1)pg_log(数据 ... -
pg存储过程--创建分区表
2016-01-13 15:46 01)将普通表改成按时间字段分区表 调用select fun_c ... -
pg常用自制shell脚本-tina
2016-01-13 15:30 49361)小型监控: 1.在pg库主机上部署,每5分钟执行一次,插入 ... -
postgresql 时间类型和相关函数
2016-01-13 10:41 5457今天来好好学习一下postgresql涉及时间的字段类型和一些 ... -
pg 表空间
2016-01-07 16:28 3123一、说明 在数据库运维工作中,经常会有数据目录使用率较高 ... -
pg 定期vacuum和reindex
2016-01-07 14:56 8615定期vacuum和reindex: 一 ... -
pg 序列
2016-01-06 16:58 1621一、简介 一个序列对象通常用于为行或者表生成唯一的标识符。 ... -
pg 简单备份和恢复
2016-01-06 15:53 3768pg的备份和恢复 pg_dump ... -
ERROR: invalid page header in block 27073 of relation base/21078/45300926
2016-01-06 15:12 2143突然断网,检查后通知我们UPS断电,db所在主机重启 1、连上 ... -
pg_cancel_backend()和pg_terminate_backend()
2016-01-05 17:42 3555pg_cancel_backend()和pg_terminat ... -
canceling statement due to conflict with recovery
2016-01-05 17:12 1681报错: canceling statement due to ... -
postgresql dblink 使用
2015-12-31 14:33 2042dblink的使用 pg的跨库查询工具 select dbli ... -
root用户不能使用psql或者pg_dump等pg命令
2015-12-24 14:40 7027root用户不能使用psql或者pg_dump等pg命令 [ ... -
安装postgresql 9.1.1
2015-12-22 16:25 642安装postgresql 9.1.1 ---版本自选,步骤相同 ... -
pgbadger监控安装和使用
2015-12-21 10:01 2033pgbadger监控安装和使用 https://github ... -
oracle,postgresql,mysql一些使用上的区别记录
2015-12-16 11:38 01.限制行数: select * from ta where ... -
postgresql存储过程实例:已审核证书存入临时表
2015-12-14 16:44 652存储过程实例: 需求: 思路:建立存储过程 代码逻辑: 1 ... -
pg 函数sfa_tmp_sleep()执行越来越慢-sql分析
2015-12-11 09:48 678pg 函数sfa_tmp_sleep()执行越来越慢 ... -
pgpool 主从流复制模式下的安装使用
2015-12-11 09:50 4126pgpool-II 是一个位于 PostgreSQL 服务器和 ...
相关推荐
### Navicat 连接 PostgreSQL 报错:ERROR: SSL connection is required by the database system 在使用 Navicat 连接 PostgreSQL 数据库时遇到“ERROR: SSL connection is required by the database system”错误...
postgresql ubantu离线安装版报错的补丁
这个版本以.tar.bz2格式压缩,是一种常见的在Linux系统中分发软件的方式。用户需要先解压,然后编译安装。解压后,通常会包含源代码、文档、配置脚本和必要的构建工具。 "poco"是一个跨平台的C++库,用于开发网络、...
2. 依赖库:PostgreSQL运行需要一些特定的库文件支持,比如libssl(用于加密通信)、libpq(PostgreSQL的C语言接口库)等。离线安装包通常会打包这些必要的依赖库,确保在无网络环境中也能正常运行。 3. 安装指南:...
1. **类型4驱动**:PostgreSQL JDBC驱动是一个类型4纯Java驱动,无需本地库,可以直接通过网络与数据库服务器通信。 2. **连接URL**:使用类似`jdbc:postgresql://hostname:port/databaseName`的格式建立连接,其中...
postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-...
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。
PostgreSQL DBA认证PGCE-E-092-中级SQL题目是一个测试SQL掌握程度的题目,涵盖了PostgreSQL数据库管理系统的各种知识点。 LIKE操作符 在PostgreSQL中,LIKE操作符用于字符串模式匹配。LIKE操作符有两种通配符:%和...
本文将详述CodeSmith 8.0.1版本在尝试连接到PostgreSQL数据库时遇到的问题,以及如何通过添加必要的DLL文件和理解连接字符串来解决这个问题。 首先,CodeSmith是一款强大的代码生成器,它允许开发者通过模板语言...
这个目录下的文件主要是静态和动态链接库(.lib和.dll),它们是实际运行时与PostgreSQL交互所需的库。在Windows环境下,`.lib`文件用于静态链接,将库功能直接集成到可执行文件中;而`.dll`文件则用于动态链接,...
- **主键**:DB2中的主键定义与GreenPlum/PostgreSQL相似,但需要注意的是,在GreenPlum/PostgreSQL中,主键约束通常会自动创建一个唯一索引。 - **外键**:DB2支持外键约束,但在GreenPlum/PostgreSQL中,外键约束...
PostgreSql 是一个功能强大且开源的关系数据库管理系统,它提供了一个强大的平台来存储和管理数据。PostGis 是一个基于PostgreSql 的空间数据库扩展,它提供了对空间数据的支持,允许用户存储、查询和分析空间数据。...
二、PostgreSQL 简介 PostgreSQL 是一个开源的关系数据库管理系统,能够存储和管理大量数据。它提供了强大的数据处理能力,包括事务处理、锁机制、索引机制等功能。PostgreSQL 广泛应用于各种行业,包括金融、商业...
Postgresql 10.20.2 Windows 64位安装包Postgresql 10.20.2 Windows 64位安装包Postgresql 10.20.2 Windows 64位安装包Postgresql 10.20.2 Windows 64位安装包Postgresql 10.20.2 Windows 64位安装包Postgresql ...
postgresql, PostgreSQL cookbook 开发库 cookbook 安装并配置PostgreSQL作为客户机或者服务器。要求平台Amazon LinuxDebian 7 Ubuntu 14.04 红色 Hat/CentOS/Scientific 6 Fed
PostgreSQL 是一个功能强大且免费的开源关系数据库管理系统。本文将指导您如何将 Jeecgboot 与 PostgreSQL 集成,以便更好地使用 PostgreSQL 的强大功能。 1. 更改数据源 要将 Jeecgboot 集成到 PostgreSQL,需要...
3. **临时表空间**:PostgreSQL 10 支持为每个会话创建临时表空间,增强了对临时对象的管理,提高了并发性能。 4. **自动 Vacuum 优化**:自动 Vacuum 过程进行了改进,能更好地处理大量删除和更新操作,减少存储...
Postgresql
在Linux环境中配置PostgreSQL测试库是一项重要的任务,它涉及到数据库的安装、配置、以及测试环境的搭建。PostgreSQL是一款开源的关系型数据库管理系统,以其高度稳定性和丰富的功能深受开发者喜爱。以下将详细介绍...
本程序的重点是如何利用C#对PostgreSQL数据库进行操作,PDatabase.cs是一个完整的操作类,role是角色表的操作类,程序采用三层架构模型。 在对PostgreSQL数据库进行操作时,用到了如何调用存储过程来完成各项操作。...