Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memulakan Skema Pangkalan Data MySQL dengan Amanah dalam Bekas Docker?

Bagaimana untuk Memulakan Skema Pangkalan Data MySQL dengan Amanah dalam Bekas Docker?

Barbara Streisand
Barbara Streisandasal
2024-12-05 03:54:13996semak imbas

How to Reliably Initialize a MySQL Database Schema within a Docker Container?

Cara Memulakan Pangkalan Data MySQL dengan Skema dalam Bekas Docker

Memulakan pangkalan data MySQL dengan skema dalam bekas Docker ialah tugas biasa yang melibatkan penciptaan pangkalan data dan memuatkan skema ke dalamnya. Satu pendekatan untuk melakukan ini adalah dengan menggunakan Dockerfile dan arahan CMD untuk melaksanakan skrip yang memulakan pangkalan data. Walau bagaimanapun, kaedah ini mungkin menghadapi kesukaran, kerana arahan CMD hanya boleh melaksanakan satu arahan dan bukan satu siri arahan.

Untuk mengatasi isu ini, pendekatan yang lebih dipercayai ialah menggunakan arahan ADD untuk menambah pangkalan data fail skema ke direktori /docker-entrypoint-initdb.d. Selepas pembuatan kontena, skrip docker-entrypoint.sh secara automatik menjalankan mana-mana skrip SQL yang terdapat dalam direktori ini terhadap pangkalan data MySQL.

Fail Docker yang diubah suai:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

Menyediakan Lambakan Skim:

Sebelum anda bermula, pastikan anda mempunyai longgokan skema MySQL anda yang disimpan dalam fail bernama schema.sql. Ini boleh diperolehi dengan menggunakan arahan mysqldump:

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

Memulakan Instance MySQL Docker:

Setelah Dockerfile diubah suai dan dump skema disediakan, anda boleh memulakan contoh MySQL Docker menggunakan Docker Compose:

docker-compose build
docker-compose up

Dengan mengikuti langkah ini, anda boleh memulakan pangkalan data MySQL dengan berkesan dengan skema dalam bekas Docker. Direktori docker-entrypoint-initdb.d memastikan bahawa skema dimuatkan semasa pembuatan kontena, membolehkan anda mempunyai pangkalan data pra-isi dengan skema yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Skema Pangkalan Data MySQL dengan Amanah dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn