GitLab安装初始化数据库时密码认证失败求助
解决GitLab初始化数据库时密码认证失败的问题
嘿,这个问题我之前帮人排查过好多次,核心原因基本都是PostgreSQL的认证模式不匹配导致的!你说手动登录输任意密码都能进,说明当前PostgreSQL对GitLab的数据库用户用的是trust或者peer这类免密码/弱认证模式,但GitLab初始化时是按照md5密码认证来提交请求的,自然就会触发认证失败的报错。
下面是具体的排查和修复步骤:
第一步:找到PostgreSQL的认证配置文件
pg_hba.conf
不同系统和PostgreSQL版本的路径可能不一样,常见的位置有:/etc/postgresql/<你的PostgreSQL版本>/main/pg_hba.conf(Debian/Ubuntu系)/var/lib/postgresql/<你的PostgreSQL版本>/data/pg_hba.conf(RHEL/CentOS系)
你可以用find / -name pg_hba.conf命令快速定位文件位置。
第二步:修改对应数据库用户的认证方式为
md5
打开pg_hba.conf,找到和GitLab数据库(通常是gitlabhq_production)、用户(通常是gitlab)相关的条目,把认证方式从trust或peer改成md5:# 本地socket连接的配置 local gitlabhq_production gitlab md5 # 本地TCP连接的配置(IPv4) host gitlabhq_production gitlab 127.0.0.1/32 md5 # 本地TCP连接的配置(IPv6) host gitlabhq_production gitlab ::1/128 md5第三步:重启PostgreSQL服务让配置生效
根据你的系统执行对应的重启命令:# Debian/Ubuntu系 sudo systemctl restart postgresql # RHEL/CentOS系 sudo service postgresql restart第四步:确认GitLab配置文件里的数据库密码正确
打开GitLab的数据库配置文件(源码版是config/database.yml,Omnibus版是/etc/gitlab/gitlab.rb),确保里面填写的数据库密码和你在PostgreSQL中给gitlab用户设置的密码完全一致。如果之前没设置过密码,可以用这条命令设置:sudo -u postgres psql -c "ALTER USER gitlab WITH PASSWORD '你的自定义密码';"第五步:重新执行GitLab的数据库初始化命令
源码版执行:bundle exec rake db:setup RAILS_ENV=productionOmnibus版执行:
sudo gitlab-rake db:setup
这样操作后,应该就能顺利完成数据库初始化了!
内容的提问来源于stack exchange,提问作者SiXoS
相关产品推荐
相关产品推荐

