亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Postgres for Docker 運行 pq 時出現“錯誤:pq:

使用 Postgres for Docker 運行 pq 時出現“錯誤:pq:

Go
慕無忌1623718 2023-02-28 21:16:18
我正在使用postgres:14-alpine image在 Docker 上設置本地 Postgres 數據庫,并使用golang-migrate在其上運行數據庫遷移,當我在運行該migrate工具后收到以下錯誤消息時:error: pq: role "root" does not exist我正在運行以下命令:$ docker run --name postgres14 -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=pass -d postgres:14-alpine $ docker exec -it postgres14 createdb --user=root --owner=root demodb $ migrate -path db/migrations -database postgresql://root:pass@localhost:5432/demodb?sslmode=disable --verbose up也可以在這個 Makefile中查看這些命令,并且可以在這個存儲庫中找到完整的代碼庫。以下是來自 Postgres 容器的日志:The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "en_US.utf8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". Data page checksums are disabled.我應該怎么做才能root正確配置角色?
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

docker image 文檔指定環境POSTGRES_USER變量默認為postgres如果未設置,請嘗試使用它代替root或刪除容器并使用正確的環境變量再次構建它

一旦你進入 psql shell,你就可以創建一個用戶

CREATE USER username WITH PASSWORD 'your_password';

然后授予用戶對特定數據庫的訪問權限:

GRANT ALL PRIVILEGES ON DATABASE demodb TO username;

完成后,您可以在 make 文件的連接字符串中使用用戶


查看完整回答
反對 回復 2023-02-28
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

原來 Hombrew 在我的操作系統上安裝和設置的 Postgres 服務器使用了相同的端口,這與在相同端口號下對容器化數據庫發出的請求發生沖突。

這個問題可以通過為容器化數據庫使用不同的端口號,或者通過關閉操作系統上的數據庫來解決。


查看完整回答
反對 回復 2023-02-28
  • 2 回答
  • 0 關注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號