PostgreSQL 默认情况下没有固定全局用户名和密码,其认证方式取决于安装时的配置和操作系统环境。
1. 默认超级用户
用户名:通常是安装时指定的系统用户名(如 postgres),而非固定的通用账户。
在 Linux 系统中,PostgreSQL 默认会创建一个名为 postgres 的系统用户,同时生成一个同名的数据库超级用户(拥有最高权限)。
在 Windows 中,默认超级用户也是 postgres(通过服务配置指定)。
2. 默认密码
初始安装后密码状态:
Linux(如 Ubuntu/Debian):
如果通过包管理器(如 apt)安装,PostgreSQL 通常配置为 "peer" 认证(依赖系统用户身份验证),首次登录无需密码。
可通过以下命令切换到 postgres 用户后直接登录:
sudo -i -u postgres # 切换到系统用户 postgres
psql # 直接进入 PostgreSQL 交互终端
若需设置密码,执行:
psql -c "ALTER USER postgres PASSWORD '你的密码';"
Windows 或手动安装:
可能在安装向导中要求设置 postgres 用户的密码,若未设置则可能为空(不推荐)。
3. 认证方式
PostgreSQL 的访问权限由 pg_hba.conf 文件控制(路径如 /etc/postgresql/<版本>/main/pg_hba.conf)。常见认证方式:
peer:Linux 系统用户直接映射到数据库用户(无需密码)。
md5 或 scram-sha-256:需输入密码。
trust:允许无密码登录(仅限本地测试环境)。
4. 如何找回或重置密码
如果忘记 postgres 用户密码:
以系统管理员身份切换到 postgres 用户(Linux):
sudo -i -u postgres
进入 PostgreSQL 并修改密码:
psql -c "ALTER USER postgres PASSWORD '新密码';"
若无法登录,可临时修改 pg_hba.conf 为 trust 认证,重启服务后无密码登录再重置密码。