我需要在 GitHubActions 作業流程中創建一個 PostgreSQL 資料庫,所以我想出了以下 yml 片段:
jobs:
build:
name: DB
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Create DB
run: |
sudo apt update --yes
sudo apt install postgresql --yes
sudo service postgresql start
sudo -u postgres createdb somedb
sudo -u postgres psql -d somedb -a -q -f db/createDBCommands.sql
sudo -u postgres psql -c "CREATE USER someDbUser WITH PASSWORD 'localDevPassword';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE somedb to someDbUser;"
以上作業正常(不拋出錯誤)。但是,當我想在訪問資料庫的同一個 CI 作業中運行測驗時,我收到以下錯誤:
28P01:用戶“someDbUser”的密碼驗證失敗
代碼中使用的連接字串是:"Server=localhost;Port=5432;Database=somedb;User Id=someDbUser;Password=localDevPassword".
我嘗試在連接字串中的密碼中添加雙引號(正確轉義它們,但它仍然不起作用)。
是我必須從 127.0.0.1 主機內授予用戶訪問權限嗎?如果是這樣,如何使用命令而不是修改組態檔來做到這一點?(鑒于我正在使用 CI。)
uj5u.com熱心網友回復:
如果您不一定需要新用戶,您可以更改超級用戶密碼并使用該用戶進行連接。
- name: Create DB
run: |
sudo apt update --yes
sudo apt install postgresql --yes
sudo service postgresql start
sudo -u postgres createdb somedb
sudo -u postgres psql -d somedb -a -q -f db/createDBCommands.sql
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'localDevPassword';"
您可以使用以下連接字串連接到它:
"Server=localhost;Port=5432;Database=somedb;User Id=postgres;Password=localDevPassword"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428222.html
標籤:linux PostgreSQL ubuntu github-动作
