Bagaimana untuk menyambung dari localhost ke bekas docker yang berjalan dalam rangkaian docker
P粉418854048
P粉418854048 2023-07-25 11:54:51
0
1
481
<p>Saya mempunyai bekas docker mysql yang ditulis menggunakan docker seperti ini:</p> <pre class="brush:php;toolbar:false;">versi: "3.3" perkhidmatan: db-server: nama_bekas: pangkalan data imej: mysql:terkini membina: dockerfile: ./Dockerfile persekitaran: MYSQL_ROOT_PASSWORD: rootTest MYSQL_USER: soumalya MYSQL_PASSWORD: userTest pelabuhan: - "3031:3306" rangkaian: - dalaman jilid: - mysql:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro mulakan semula: kecuali dihentikan rangkaian: dalaman: pemandu:jambatan jilid: mysql:</pre> <p>Saya menyambung ke localhost:3031 dengan kata laluan yang betul, tetapi ia memberi saya ralat ini:</p> <pre class="lang-bash prettyprint-override"><code>Akses ditolak untuk pengguna 'root'@'172.19.0.1' (menggunakan kata laluan: YA) </code></pre> <p>Bagaimanakah saya boleh membetulkan ralat ini? </p><p>Saya memberikan kandungan Dockerfile di sini:</p><p><kod></code></p> <pre class="brush:php;toolbar:false;">TAMBAH init.sql init.sql</pre> <p>Saya memberikan kandungan init. sql di sini:</p> <pre class="brush:php;toolbar:false;">buat pangkalan data jika tiada ulasan; cipta pangkalan data jika tidak wujud pengguna; cipta pangkalan data jika tidak wujud vendor; BERIKAN SEMUA KEISTIMEWAAN pada ulasan.* kepada 'soumalya'@'%'; BERIKAN SEMUA KEISTIMEWAAN kepada pengguna.* kepada 'soumalya'@'%'; BERIKAN SEMUA KEISTIMEWAAN kepada vendor.* kepada 'soumalya'@'%';</pre> <p>Daripada log kontena, saya dapat melihat bahawa pangkalan data sedang dimulakan dan menunggu sambungan masuk dalam port 3306. </p>
P粉418854048
P粉418854048

membalas semua(1)
P粉803527801

Seperti yang dikatakan @HansKillan, saya menukar kata laluan apabila pangkalan data sudah wujud, kata laluan yang ditukar diabaikan, ia menggunakan kata laluan lama. Saya terpaksa menukar kata laluan pengguna saya secara manual dengan menulis arahan sql menggunakan docker exec <container_name>... menggunakan arahan SQL untuk menukar kata laluan pengguna. Kemudian semuanya berjaya. Dalam kes anda, jika pangkalan data anda tidak mengandungi banyak data, maka anda hanya boleh memadamkan kelantangan dan mencipta semula bekas untuk memendekkan masa

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!