PostgreSQL安装后无法连接,postgres密码未修改却报错求助
解决PostgreSQL连接失败及默认数据库不可见问题
1. 通过系统用户直接登录数据库(绕过密码验证)
刚安装的PostgreSQL在本地默认采用peer认证机制,你可以直接切换到系统内置的postgres用户登录数据库:
- 打开终端执行:
sudo su - postgres - 无需密码,直接启动psql命令行:
此时会直接进入PostgreSQL交互环境。psql
2. 设置postgres用户密码
进入psql后,为postgres数据库用户设置密码(后续连接需要用到):
ALTER USER postgres PASSWORD '自定义密码';
执行完成后输入\q退出psql,再输入exit退出postgres系统用户。
3. 修改认证配置文件pg_hba.conf
默认配置可能仅允许peer认证,需调整为密码认证模式:
- 定位pg_hba.conf文件,通常路径为
/etc/postgresql/[你的版本号]/main/pg_hba.conf(例如PostgreSQL 15对应/etc/postgresql/15/main/pg_hba.conf) - 用sudo权限编辑文件:
sudo nano /etc/postgresql/15/main/pg_hba.conf - 找到以下两行:
将两行中的local all postgres peer local all all peerpeer替换为md5:local all postgres md5 local all all md5 - 保存并退出编辑器(按
Ctrl+O回车确认,再按Ctrl+X) - 重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
4. 在pgAdmin4中手动添加服务器连接
默认情况下pgAdmin4不会自动识别本地数据库,需手动创建连接:
- 打开pgAdmin4,点击左侧菜单栏的
Add New Server - 在
General标签页填写服务器名称(例如Local PostgreSQL) - 切换到
Connection标签页:- Host name/address:填写
localhost - Port:默认填
5432 - Maintenance database:填写
postgres(这就是系统默认创建的数据库) - Username:填写
postgres - Password:填写你刚才设置的自定义密码
- Host name/address:填写
- 点击
Save,即可在左侧列表中看到默认的postgres数据库。
内容的提问来源于stack exchange,提问作者NightCrawler
相关产品推荐
相关产品推荐

