前提・実現したいこと
Docker で作成したpostgresへrustのORMツールであるdieselからアクセスできない。
作成したpostgres
docker run \ --name rust-db \ -e POSTGRES_PASSWORD=mypassword \ -p 5433:5432 -d \ -v postgres-tmp:/var/lib/postgresql/data \ -e POSTGRES_HOST_AUTH_METHOD=trust \ postgres:12.3-alpine
こちらのDockerイメージをrunしました。
その後に、RUSTのORMマッパーであるDieselをインストールしてdisel setup commandをしました。
[dependencies] actix-files = "0.5.0" actix-web = "3.3.2" handlebars = { version = "3.0.1", features = ["dir_source"] } serde_json = "1.0.68" diesel = { version = "1.4.1", features = ["postgres"] } dotenv = "0.15.0" .env DATABASE_URL=postgres://postgres:mypassword@localhost/project_name
発生している問題・エラーメッセージ
Creating migrations directory at: rust/rust-training/02catdex/migrations Creating database: FATAL: password authentication failed for user "postgres"
分からないこと・教えて欲しいこと
・POSTGRES_HOST_AUTH_METHOD=trust
こちらの設定によって、authenticationはパスできると思っていたのですが、エラーになってしまいます。
どこが原因
diesel側かDocker側かで切り分けもできていなくてどのように解決していくかご教授お願いします。
・https://www.koikikukan.com/archives/2020/06/03-235555.php
を参考にしてDockerの中に入って設定をしようとしたのですが、
Docker alpine 環境でVIMエディターが入ってなかったりしてつまづいてます。
・初歩的で申し訳ないのですが、apline環境の場合にファイルの書き換えを行う場合にはどのようにすればいいのですか?
新しく, trustに変えてみました。
# "local" is for Unix domain socket connections only local all all trust
編集
わかりやすくするために、docker-compose.ymlを使用して起動しました。
docker-compose.yml
version: "3" services: postgresql: image: postgres:12.3-alpine container_name: rust-db ports: - 5433:5432 volumes: - ./pg-tmp:/var/lib/postgresql/data environment: POSTGRES_USER: user1 POSTGRES_PASSWORD: mypassword POSTGRES_INITDB_ARGS: "--encoding=UTF-8" POSTGRES_HOST_AUTH_METHOD: trust hostname: postgres restart: always .env DATABASE_URL=postgres://user1:mypassword@localhost:5433
返ってくるエラー
user1ではなくてuser "postgres"に接続がされている。
diesel setup Creating database: FATAL: password authentication failed for user "postgres"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/20 17:37 編集
2021/10/20 17:37
2021/10/21 00:39