Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan kata laluan dengan imej docker postgres rasmi?

Bagaimana untuk menggunakan kata laluan dengan imej docker postgres rasmi?

WBOY
WBOYke hadapan
2024-02-05 21:45:121219semak imbas

如何将密码与官方 postgres docker 镜像一起使用?

Kandungan soalan

Cuba gunakan imej docker postgres rasmi:

docker run --rm -d \
        --name my-postgres \
        --network my-network \
        -e POSTGRES_USER=postgres \
        -e POSTGRES_PASSWORD=mysuperduperlongpwstring \
        -e POSTGRES_DB=postgres \
        -v /path/to/postgres/data/:/var/lib/postgresql/data
        postgres

Namun, apabila membuat sambungan postgres menggunakan Go,

        psqlInfo := fmt.Sprintf(
                "host=%s port=%s user=%s password=%s dbname=%s sslmode=%s",
                os.Getenv("DB_HOST"),
                os.Getenv("DB_PORT"),
                os.Getenv("DB_USER"),
                os.Getenv("DB_PASSWORD"),
                os.Getenv("DB_NAME"),
                os.Getenv("DB_SSL_MODE"),
        )
        db, err := sql.Open("postgres", psqlInfo)
        if err != nil {
                panic(err)
        }

Saya selalu berakhir dengan

panic: pq: 用户“postgres”的密码验证失败

Saya tidak mempunyai cara lain untuk mengesahkan mysuperduperlongpwstring:

  • Cuba gunakan psql -U postgres -d postgres --password untuk menyambung ke pangkalan data dari dalam bekas docker dan berikan apa sahaja kerana kata laluan akan berjaya.
  • Cuba tukar kata laluan dari dalam bekas docker dan anda akan mendapat

错误:必须是超级用户才能更改复制角色或更改复制属性

Yang berkata, pada dasarnya jawapan berikut tidak lagi berfungsi untuk saya:

  • Cara menukar kata laluan imej docker Postgresql
  • Bagaimana untuk menukar kata laluan pengguna PostgreSQL?

Disebabkan kekurangan sumber, saya menukar mysuperduperlongpwstring beberapa kali apabila memulakan docker dan menukar Go PW saya dengan sewajarnya, tetapi berakhir dengan kegagalan yang sama setiap kali.

Apakah masalahnya dan bagaimana untuk menyelesaikannya? Bagaimana untuk menetapkan semula kata laluan menggunakan docker postgres rasmi?


Jawapan Betul


Dalam bekas Docker, tetapkan perkara yang anda tunjukkan dan mulakan dengan kelantangan kosong, "postgres" akan menjadi pengguna super supaya anda tidak akan mendapat ralat tentang keperluan untuk menjadi pengguna super.

Satu-satunya penjelasan yang munasabah yang saya lihat untuk bahagian ini ialah sama ada anda tidak menjalankan psql di mana anda fikir anda berada, atau anda tidak bermula dengan volum kosong, jadi arahan docker run anda hanya memulakan pangkalan data sedia ada, jadi anda " - e POSTGRES*" konfigurasi semua diabaikan. Jadi dalam apa jua cara, anda sama ada tidak disambungkan seperti yang anda fikirkan, atau ia tidak dikonfigurasikan seperti yang anda fikirkan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kata laluan dengan imej docker postgres rasmi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam