使用 sql.sock 链接时报错链接拒绝

链接使用命令 obclient -S /home/admin/oceanbase/run/sql.sock -usys@test -p

报错 :ERROR 1045 (42000):ACCESS DENIED FOR USER ‘sys’@‘xxx.xxx.xxx.xx’ (using password : YES)

1. 验证密码准确性

  • 确认输入的密码是否正确,若遗忘可通过具有超级权限的用户重置sys密码:
    ALTER USER ‘sys’@’%’ IDENTIFIED BY ‘新密码’;

2. 检查用户的主机访问权限

OceanBase 用户权限绑定 “用户名 @主机”,需确认sys是否授权了当前客户端 IP(xxx.xxx.xxx.xxx)的访问:

  • 登录 OceanBase 集群(通过本地或已授权主机),执行以下语句查看权限:
    SHOW GRANTS FOR ‘sys’@‘xxx.xxx.xxx.xxx’;

若未授权,需添加该 IP 的访问权限:
GRANT ALL PRIVILEGES ON . TO ‘sys’@‘xxx.xxx.xxx.xxx’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. 匹配连接方式与权限

当前连接使用了sql.sock(本地套接字),但指定了 IP 主机,本地套接字连接通常对应localhost主机权限,可尝试调整连接命令为本地主机形式:
obclient -S /home/admin/oceanbase/run/sql.sock -u sys@test -p