数据库连接报错类问题 本页介绍天翼云TeleDB数据库数据库连接报错类问题。 用户名不对问题 问题描述 用户存在,但客户端连接报错: FATAL: password authentication failedfor user "xxx" 可能影响 无法连接数据库。 解决步骤 1. 检查数据库中是否存在该用户,psql客户端可通过 du 或 dg列出用户,或执行以下SQL查看 > select from pguser where usename '用户名'; 注意 注意大小写问题,TeleDB在不加双引号时不区分大小时,默认小写,如果用户名中存在大写字母的情况,则使用时需要加上双引号;这里强烈不建议使用区分大小写的用户名或对象。 密码不正确或密码过期问题 问题描述 用户不存在,客户端连接报错: FATAL: role "xxx" does not exist。 可能影响 无法连接数据库。 解决步骤 1. 密码过期或密码错误都会提示上述同样的错误,可通过以下SQL检查密码是否过期 > select rolname,rolvaliduntil from pgroles where rolname'xxx'; > 1)如果密码已过期,可通过以下SQL更新过期时间: > > alter role xxx valid until '20340110 10:32:12+08'; > 2)如果密码未过期,则是输出的密码错误导致,检查下输入密码是否正确 > 3)如果忘记密码,普通用户可以用管理员登录后alter命令修改,或通过控制台重置 > 修改密码SQL语句如下: > > alter role xxx PASSWORD 'xxx'; 用户无登录权限问题 问题描述 用户存在,但客户端连接报错: FATAL: role "xxx" is notpermitted to log in 可能影响 无法连接数据库。 解决步骤 1. TeleDB支持通过create role、create user两种方式创建用户,create role默认不带LOGIN关键字,即默认无登录权限;create user则默认带LOGIN关键字,默认有登录权限。 2. 此报错是用户未设置登录权限,在创建用户时,create role默认用户无登录权限,需要增加LOGIN关键字,可通过以下命令添加LOGIN权限 > alter role xxx LOGIN; > 后续新建用户可以用create user 命令来代替create role: > > create user xxx PASSWORD 'xxx'; IP不在白名单内的问题