分享

初识postgresql之错误创建数据库时报错

 明神月 2020-08-31

PostgreSQL创建数据库时报错:ERROR: source database "template1" is being accessed by other users

参考:https://blog.csdn.net/jueshengtianya/article/details/17420287?utm_source=blogxgwz1

一是,在创建数据库时为什么跟模板数据库template1扯上了关系

先看第一个,原来Postgresql在用initdb创建数据库集群时,将创建一个模板数据库template1,以后所有的数据库都将来源于模板数据库template1,其中也包括模板数据库template0.

       换句话说,template1templat0用于创建数据库,即Postgresql中用从模板数据库复制的方式创建一个新的数据库,而template1就是创建数据库的默认模板。

 二是,postmasterpostgres进程之间的关系?

所以如果用户在创建数据库时不为数据库指定模板,那么将使用template1模板数据库。这便是对问题一的回答,下面来看第二个问题“postmasterpostgres进程之间的关系?”。

       原来,postmaster是运行在服务器上的主进程(也称监听守护进程),而postgrespostmaster的子进程,这一点从上图中进行号也可以看出来(27113postmaster的进程号,而27122postmaster子进程之一),那么postmaster主进程在什么情况下将开启一个子进程呢?

       首先,客户端想访问服务器中某数据库,客户端将调用接口库(如ODBClibpq等)将用户的请求通过网络发送给主进程postmaster

       接着,当postmaster接收到客户端发送过来的用户请求后,它将启动一个新的后端进程postgres为用户服务,此后,postmaster就将与客户端的交互工作交由postgres服务进程,而有postgres来完成客户端所需要的各种操作。

 三是,“192.168.20.1041666)”是谁?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多