twtrubiks / odoo-development-environment-tutorial

建立 odoo 開發環境 ( source code )

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

安裝完postgresql 12後開不起來

akira32chen opened this issue · comments

安裝完postgresql 12後下以下指令,卻出現錯誤:

python3 odoo-bin -w odoo -r odoo -c /home/[USER]/odoo/odoo13/config/odoo.conf

2021-03-26 06:02:13,709 943 INFO ? werkzeug: 127.0.0.1 - - [26/Mar/2021 06:02:13] "GET /web/database/manager HTTP/1.1" 500 - 0 0.000 0.007 2021-03-26 06:02:13,716 943 ERROR ? werkzeug: Error on request: Traceback (most recent call last): File "/home/akira/odoo/odoo13/odoo13/lib/python3.6/site-packages/werkzeug/serving.py", line 270, in run_wsgi execute(self.server.app) File "/home/akira/odoo/odoo13/odoo13/lib/python3.6/site-packages/werkzeug/serving.py", line 258, in execute application_iter = app(environ, start_response) File "/home/akira/odoo/odoo13/odoo/service/server.py", line 439, in app return self.app(e, s) File "/home/akira/odoo/odoo13/odoo/service/wsgi_server.py", line 142, in application return application_unproxied(environ, start_response) File "/home/akira/odoo/odoo13/odoo/service/wsgi_server.py", line 117, in application_unproxied result = odoo.http.root(environ, start_response) File "/home/akira/odoo/odoo13/odoo/http.py", line 1287, in __call__ return self.dispatch(environ, start_response) File "/home/akira/odoo/odoo13/odoo/http.py", line 1257, in __call__ return self.app(environ, start_wrapped) File "/home/akira/odoo/odoo13/odoo13/lib/python3.6/site-packages/werkzeug/wsgi.py", line 766, in __call__ return self.app(environ, start_response) File "/home/akira/odoo/odoo13/odoo/http.py", line 1421, in dispatch self.setup_db(httprequest) File "/home/akira/odoo/odoo13/odoo/http.py", line 1344, in setup_db httprequest.session.db = db_monodb(httprequest) File "/home/akira/odoo/odoo13/odoo/http.py", line 1506, in db_monodb dbs = db_list(True, httprequest) File "/home/akira/odoo/odoo13/odoo/http.py", line 1473, in db_list dbs = odoo.service.db.list_dbs(force) File "/home/akira/odoo/odoo13/odoo/service/db.py", line 378, in list_dbs with closing(db.cursor()) as cr: File "/home/akira/odoo/odoo13/odoo/sql_db.py", line 664, in cursor return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized) File "/home/akira/odoo/odoo13/odoo/sql_db.py", line 196, in __init__ self._cnx = pool.borrow(dsn) File "/home/akira/odoo/odoo13/odoo/sql_db.py", line 547, in _locked return fun(self, *args, **kwargs) File "/home/akira/odoo/odoo13/odoo/sql_db.py", line 615, in borrow **connection_info) File "/home/akira/odoo/odoo13/odoo13/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: FATAL: Peer authentication failed for user "odoo" - - -

是否要先用pgadmin建立資料庫?

我試著用pgadmin建立一個odoo資料庫:

General / Name:odoo

Host:localhost
Port:5432
Maintenance database:postgres
Username:odoo
Password:odoo

可是按下Save,卻出現一個錯誤視窗
Error saving properties

Unable to connect to server:
FATAL:password authentication failed for user "odoo"
FATAL:password authentication failed for user "odoo"

我之前有安裝到Postgresql 13,有用pgadmin建立一個odoo的資料庫,帳密都為odoo,但是後來發現就將Postgresql完全移除,再安裝Postgresql 12

我後來找到一段youtube影片,終於解決了

How to resolve peer authentication failed for user odoo
https://www.youtube.com/watch?v=JRmXLDnJbjI

ps aux | grep odoo
sudo kill -9 [PS_ID]

/etc/postgresql/12/main/pg_hba.conf
local all odoo trust

sudo service postgresql restart

不過pgadmin我卻不會設定,都一直出現以下的訊息:

Unable to connect to server:
FATAL:password authentication failed for user "odoo"
FATAL:password authentication failed for user "odoo"

確認你的 postgresql 帳號和密碼是否正確,
如果你是和我一樣使用文章內的設定, 帳號密碼就都是 odoo, 可參考 docker-compose.yml

我已經安裝好postgresql也啟動,不過我不是用docker,我使直接安裝(sudo apt install postgresql-client-12)
pgAmin也是直接安裝,但是pgAmin一直無法設定odoo的資料庫,都會出現以下錯誤訊息:
想請問一下是否哪裡還需要設定?

Unable to connect to server:
FATAL:password authentication failed for user "odoo"
FATAL:password authentication failed for user "odoo"

$ psql odoo
odoo-# \l

                              List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
odoo | odoo | UTF8 | C | zh_TW.UTF-8 |
postgres | postgres | UTF8 | zh_TW.UTF-8 | zh_TW.UTF-8 |
template0 | postgres | UTF8 | zh_TW.UTF-8 | zh_TW.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_TW.UTF-8 | zh_TW.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

基本上是設定的問題(db name, db password),
你用 FATAL:password authentication failed for user "odoo" 這個關鍵字 google 就會有答案了哦

https://stackoverflow.com/questions/12720967/postgresql-how-to-change-postgresql-user-password
後來用修改
local all all peer
local all all md5
並且修改odoo使用者的密碼
ALTER USER user_name WITH PASSWORD 'new_password';
重啟postgresql
sudo service postgresql restart
然後pgAdmin就正常了

@akira32chen 謝謝分享. 這文章感覺似成相似, 好像不是用 docker 的方式都需要這樣.