通过gsql客户端无法连接华为云数据库

问题现象

用户通过客户端工具gsql无法连接到数据库。

原因分析

  • 系统连接数量超过了最大连接数量,会显示如下错误信息。
    gsql -d human_resource -h 10.168.0.74 -U user1 -p 8000 -W Bigdata@123 -r
    gsql: FATAL:  sorry, too many clients already
    

  • 用户不具备访问该数据库的权限,会显示如下错误信息。
    gsql -d human_resource -h 10.168.0.74 -U user1 -p 8000 -W Bigdata@123 -
    gsql: FATAL:  permission denied for database "human_resource"
    DETAIL:  User does not have CONNECT privilege.
    

  • 网络连接故障。

解决办法

  • 系统连接超过最大连接数量。

    请联系技术支持工程师提供技术支持。

    关于查看用户会话连接数的方法如表1

    表1 查看会话连接数

    描述

    命令

    查看指定用户的会话连接数上限。

    执行如下命令查看连接到指定用户USER1的会话连接数上限。其中-1表示没有对用户user1设置连接数的限制。

    SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='user1';
     rolname | rolconnlimit
    ---------+--------------
     user1    |           -1
    (1 row)
    

    查看指定用户已使用的会话连接数。

    执行如下命令查看指定用户USER1已使用的会话连接数。其中,1表示USER1已使用的会话连接数。

    SELECT COUNT(*) FROM V$SESSION WHERE USERNAME='user1';
    
     count
    -------
         1
    (1 row)
    

    查看指定数据库的会话连接数上限。

    执行如下命令查看连接到指定数据库gaussdb的会话连接数上限。其中-1表示没有对数据库gaussdb设置连接数的限制。

    SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='gaussdb';
    
     datname  | datconnlimit
    ----------+--------------
     postgres |           -1
    (1 row)
    

    查看指定数据库已使用的会话连接数。

    执行如下命令查看指定数据库gaussdb上已使用的会话连接数。其中,1表示数据库gaussdb上已使用的会话连接数。

    SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='gaussdb';
     count 
    -------
         1
    (1 row)
    

    查看所有用户已使用会话连接数。

    执行如下命令查看所有用户已使用的会话连接数。

    SELECT COUNT(*) FROM PG_STAT_ACTIVITY;
     count
    -------
         10
    (1 row)
    

  • 用户不具备访问该数据库的权限。
    1. 使用管理员用户dbadmin连接数据库。
      gsql -d human_resource -h 10.168.0.74 -U dbadmin -p 8000 -W Bigdata@123 -

    2. 赋予该用户访问数据库的权限。
      GRANT CONNECT ON DATABASE human_resource TO user1;
      

      说明:

      实际上,常见的许多错误操作也可能产生用户无法连接上数据库的现象。如用户连接的数据库不存在,用户名或密码输入错误等。这些错误操作在客户端工具也有相应的提示信息。

      gsql -d human_resource -p 8000
      gsql: FATAL:  database "human_resource" does not exist
      
      gsql -d human_resource -U user1 -W gauss@789 -p 8000
      gsql: FATAL:  Invalid username/password,login denied.

  • 网络连接故障。

    请检查客户端与数据库服务器间的网络连接。如果发现从客户端无法PING到数据库服务器端,则说明网络连接出现故障。请联系技术支持工程师提供技术支持。

    ping -c 4 10.10.10.1
    PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data.
    From 10.10.10.1: icmp_seq=2 Destination Host Unreachable
    From 10.10.10.1 icmp_seq=2 Destination Host Unreachable
    From 10.10.10.1 icmp_seq=3 Destination Host Unreachable
    From 10.10.10.1 icmp_seq=4 Destination Host Unreachable
    --- 10.10.10.1 ping statistics ---
    4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 2999ms
版权声明:本文由lzhuji.com主机评测所有
文章名称:《通过gsql客户端无法连接华为云数据库》
文章链接:https://www.lzhuji.com/1389.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

本站不对信息的真伪做任何的保障,请自行甄别,自负责任。

登录

找回密码

注册