Odoo15配置custom.conf启动报odoo15用户PostgreSQL密码认证失败
问题根因
本次密码认证报错与指定8015端口启动无关,核心是两处配置不匹配:
- 配置文件中指定连接PostgreSQL的用户为
odoo15,但当前PostgreSQL实例内odoo15库的所有者是odoo用户,此前在8069端口创建的mydb库所有者为系统用户tarikol,odoo15用户无对应数据库的访问权限 - PostgreSQL默认本地连接认证规则通常为peer/ident模式,不支持账号密码形式的认证校验,会直接拒绝密码连接请求
修复步骤
1. 修复PostgreSQL用户与库权限
切换到postgres系统用户进入psql命令行:
sudo su - postgres psql
依次执行以下SQL,创建/修正odoo15用户、设置匹配的密码、授权对应数据库权限:
-- 检查odoo15用户是否存在,不存在则直接创建 DO $$ BEGIN IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'odoo15') THEN CREATE ROLE odoo15 LOGIN PASSWORD 'odoo15' CREATEDB; END IF; END $$; -- 设置与配置文件一致的连接密码 ALTER USER odoo15 WITH PASSWORD 'odoo15'; -- 将已有业务库的所有者修改为odoo15,保证访问权限 ALTER DATABASE mydb OWNER TO odoo15; ALTER DATABASE odoo15 OWNER TO odoo15; -- 退出psql \q
执行完成后退回原系统用户:
exit
2. 修改PostgreSQL连接认证规则
先执行命令查询pg_hba.conf配置文件的绝对路径:
sudo su - postgres -c "psql -c 'show hba_file;'"
编辑查询到的配置文件,找到本地连接相关的三行配置,将认证方式从peer/ident修改为md5,修改后效果如下:
local all all md5 host all all 127.0.0.1/32 md5 host all all ::1/128 md5
保存退出后重启PostgreSQL服务让配置生效:
sudo systemctl restart postgresql
3. 验证连通性后启动Odoo
先执行命令验证odoo15用户可以正常通过密码连接PostgreSQL:
psql -h localhost -U odoo15 -d postgres
输入密码odoo15如果能正常进入psql交互界面,说明数据库侧配置已经正确。退出psql后,指定你的custom.conf配置文件启动Odoo即可:
/path/to/your/odoo-bin -c /path/to/your/custom.conf
启动成功后访问http://服务器IP:8015即可正常进入Odoo界面,不会再触发密码认证错误。
附加说明
- 如果不需要保留此前在8069端口创建的
mydb库,不需要执行修改库所有者的操作,直接在Odoo的数据库管理页面用odoo15用户新建数据库即可 - 配置文件中
addons_path列的所有路径需要保证启动Odoo的系统用户有读取权限,否则会触发路径不存在报错,该问题与本次密码认证错误无关 - 启动前如果8069端口的旧Odoo服务仍在运行不需要手动停止,8015与8069端口互不冲突
内容的提问来源于stack exchange,提问作者Tarikol Islam
相关产品推荐
相关产品推荐

