PostgreSQL服务启动时报错:“FATAL: could not create lock file "/tmp/.s.PGSQL.5432.lock": Permission denied”

PostgreSQL服务启动时报错:FATAL: could not create lock file "/tmp/.s.PGSQL.5432.lock": 权限不够


PostgreSQL服务启动时报错:FATAL: could not open lock file "/tmp/.s.PGSQL.5432.lock": 权限不够


[postgresql@iTOP-4412 /mnt/disk/binpost/bin]$./postgres -D /usr/local/pgsql/data
FATAL:  could not create lock file "/tmp/.s.PGSQL.5432.lock": Permission denied



1:添加linux用户及创建数据库目录   
addgroup postgresql
adduser -G postgresql postgresql   此处需要输入密码,后面有此密码来链接数据库
mkdir -p /usr/local/pgsql/data
mkdir -p /usr/local/pgsql/log
touch  /usr/local/pgsql/log/pgsql.log
2:更改数据库目录所属权限
chown -R postgresql:postgresql /usr/local/pgsql/data
chown -R postgresql:postgresql /usr/local/pgsql/log
chown -R postgresql:postgresql /usr/local/pgsql/log/pgsql.log
chown -R postgresql:postgresql tmp


3:创建数据库用户(可忽略)
createuser -sADEP postgresql
此处需要输入密码,用来连接数据库
4:初始化及启动数据库
./initdb -D /usr/local/pgsql/data
./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start
[postgresql@iTOP-4412 /binpost/bin]$./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start
server starting
5:登陆到postgresql命令行/创建数据库及表,添加纪录。
首先需要以之前创建的用户登录 postgresql
psql postgres  
执行命令的时候,出现如下问题:
[postgresql@iTOP-4412 /binpost/bin]$./psql postgres  
psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
百度之后是权限的问题:
对/tmp目录的所属权限进行设置
[postgresql@iTOP-4412 /binpost/bin]$ su - root
[root@iTOP-4412]# ls
bin              etd              proc             usr
binpost          home             root             var
binpost.tar.bz2  lib              sbin             work
createsocket     linuxrc          showtable
dev              mnt              sys
etc              opt              tmp
[root@iTOP-4412]# chown -R postgresql:postgresql tmp
[root@iTOP-4412]# su postgresql
[postgresql@iTOP-4412 /binpost/bin]$./pg_ctl -D /usr/local/pgsql/data -l /usr/lo
cal/pgsql/log/pgsql.log start
server starting
[postgresql@iTOP-4412 /binpost/bin]$./psql postgres  
psql (9.1.9)
Type "help" for help.


postgres=# CREATE DATABASE psmp;  
postgres=# \l
                                List of databases
   Name    |   Owner    | Encoding  | Collate | Ctype |     Access privileges     
-----------+------------+-----------+---------+-------+---------------------------
 postgres  | postgresql | SQL_ASCII | C       | C     | 
 psmp      | postgresql | SQL_ASCII | C       | C     | 
 template0 | postgresql | SQL_ASCII | C       | C     | =c/postgresql            +
           |            |           |         |       | postgresql=CTc/postgresql
 template1 | postgresql | SQL_ASCII | C       | C     | =c/postgresql            +
           |            |           |         |       | postgresql=CTc/postgresql
(4 rows)
  
创建表company并添加纪录
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL,
   JOIN_DATE  DATE
);
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00 ,'2001-07-13'); 




INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT ); 


6:直接登录数据库
[postgresql@iTOP-4412 /binpost/bin]$
[postgresql@iTOP-4412 /binpost/bin]$
[postgresql@iTOP-4412 /binpost/bin]$./psql -d psmp -U postgresql
psql (9.1.9)
Type "help" for help.


psmp=# \d
           List of relations
 Schema |  Name   | Type  |   Owner    
--------+---------+-------+------------
 public | company | table | postgresql
(1 row)


psmp=# select * from company;
 id | name  | age |                      address                       | salary | join_date  
----+-------+-----+----------------------------------------------------+--------+------------
  1 | Paul  |  32 | California                                         |  20000 | 2001-07-13
  3 | Teddy |  23 | Norway                                             |  20000 | 
(2 rows)


psmp=# 



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用内容\[1\]和\[2\],当连接到PostgreSQL数据库时,出现了"psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" does not exist"的错误。这个错误通常是由于数据库角色不存在引起的。 要解决这个问题,可以尝试以下步骤: 1. 确保你使用的是正确的数据库角色。在这种情况下,错误提示是"role "root" does not exist",说明使用的是"root"这个角色,但是该角色在数据库中不存在。你可以尝试使用正确的数据库角色进行连接。 2. 检查数据库的角色列表,确保你要使用的角色已经存在。你可以使用PostgreSQL的命令行工具或者其他管理工具来查看和管理数据库角色。 3. 如果你确定角色存在但仍然无法连接,可以尝试重新安装或更新PostgreSQL。根据引用\[1\]和\[2\]的描述,有些用户在使用brew进行卸载和安装时遇到了问题,可能是由于安装过程中的一些错误导致的。重新安装或更新可能会解决这个问题。 总结起来,当出现"psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" does not exist"的错误时,你可以尝试使用正确的数据库角色进行连接,检查数据库角色列表,或者重新安装/更新PostgreSQL来解决问题。 #### 引用[.reference_title] - *1* *2* [psql: error: connection to server on socket “/tmp/.s.PGSQL.5432“ failed: No such file or directory](https://blog.csdn.net/qq_36840228/article/details/125724652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [springboot+pgbouncer+postgres数据库连接池集成方案及问题解决](https://blog.csdn.net/visket2008/article/details/129241901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值