1. 使用psql登录HGDB时出现如下报错
[root@localhost ~]# psqlpsql: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
(左右滑动查看完整内容)
以上情况,发现psql默认访问的socket文件在/var/run/postgresql/下,可能有如下原因:
使用了错误的psql工具 使用了错误的 libpq.so
对于HGDB安全版4.5和企业版6,psql工具默认会访问位于/tmp/下的socket文件。
2. pg_ctl start 时提示cannot be run as root无法启动
[root@localhost ~]# pg_ctl startpg_ctl: cannot be run as rootPlease log in (using, e.g., "su") as the (unprivileged) user that willown the server process.
(左右滑动查看完整内容)
该问题通常是由于PGDATA和PATH路径配置不正确,调用了其他pg的可执行文件
3. 出现其他和数据库版本或libpq版本等相关的报错
psql: symbol lookup error: psql: undefined symbol: PQkernelVersion
(左右滑动查看完整内容)
当psql无法正常进入数据库时,请按照如下步骤排查:
1. 确认当前服务器中HGDB进程正在运行
[root@localhost ~]# ps -ef |grep postgroot 1207 1 0 06:10 ? 00:00:00 /opt/highgo/hgdb-see-4.5.8/bin/postgres <-----可以看到存在HGDB主进程,是从HGDB安装路径中执行,且主进程正常派生出多个HGDB后台进程root 1372 1207 0 06:10 ? 00:00:00 postgres: loggerroot 1382 1207 0 06:10 ? 00:00:00 postgres: checkpointerroot 1383 1207 0 06:10 ? 00:00:00 postgres: background writerroot 1384 1207 0 06:10 ? 00:00:00 postgres: walwriterroot 1385 1207 0 06:10 ? 00:00:00 postgres: autovacuum launcherroot 1386 1207 0 06:10 ? 00:00:00 postgres: archiver last was 0000000100000000000000BEroot 1387 1207 0 06:10 ? 00:00:00 postgres: stats collectorroot 1388 1207 0 06:10 ? 00:00:00 postgres: logical replication launcher
(左右滑动查看完整内容)
假如无HGDB进程,则检查下面两步骤后,尝试pg_ctl启动HGDB
2. 检查数据库相关命令是否为HGDB自带工具
使用which命令,确保命令行中调起的psql或其他命令为HGDB自带工具
[root@localhost ~]# which psql/opt/highgo/hgdb-see-4.5.8/bin/psql #路径在HGDB安装目录下
(左右滑动查看完整内容)
3. 检查环境变量配置
使用ENV命令,确认当前shell环境变量指向HGDB的相关路径
[root@localhost ~]# env |grep -E 'PG|LD|HG|PATH'LD_LIBRARY_PATH=/opt/highgo/hgdb-see-4.5.8/lib #LD_LIBRARY_PATH在正常情况下无需配置,但是当psql无法进入数据库或无法启动时,可以尝试配置该参数指向HGDB安装目录下的lib目录PGPORT=5866PGDATABASE=highgoPATH=/opt/highgo/hgdb-see-4.5.8/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin #HGDB的可执行文件路径应该在PATH最前方,可以使用which命令再次确认HGDB_HOME=/opt/highgo/hgdb-see-4.5.8PGDATA=/opt/highgo/hgdb-see-4.5.8/data #该路径指向HGDB的数据文件目录HG_BASE=/opt/highgo
(左右滑动查看完整内容)
正常情况下,配置好PATH、LD_LIBRARY_PATH、PGDATA这三个变量,即可使用psql正常连接到HGDB的psql命令行下,并能够通过pg_ctl控制数据库服务的启停。
示例:
export PATH=/opt/highgo/hgdb-see-4.5.8/bin:$PATHexport LD_LIBRARY_PATH=/opt/highgo/hgdb-see-4.5.8/libexport PGDATA=/data/highgo/data
(左右滑动查看完整内容)
~/.bashrc文件中,
版权声明:本文由瀚高及PG志愿者翻整理,转载请注明出处,本页面内容均源自PostgreSQL Weekly英文官网,翻译目的在于传递更多信息,并不意味着瀚高赞同其观点或证实其内容的真实性。如果其他媒体、网站或其他任何形式的法律实体和个人使用,必须经过著作权人合法书面授权并自负全部法律责任。不得擅自使用瀚高名义进行转载,或盗用瀚高名义发布信息。否则瀚高将保留追究法律责任的权利!

文章转载自瀚高PG实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




