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

Bagaimana untuk Memulakan Pangkalan Data MySQL dengan Skema Di Dalam Bekas Docker?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 12:34:09229semak imbas

How to Initialize a MySQL Database with Schema Inside a Docker Container?

Memulakan Pangkalan Data MySQL dengan Skema dalam Docker Container

Memulakan pangkalan data MySQL dengan skema dalam bekas Docker boleh mencabar. Berikut ialah penyelesaian untuk menangani isu ini:

1. Buang Skema MySQL

Buang skema MySQL anda ke fail menggunakan arahan berikut:

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

2. Tambahkan Fail Skema pada Fail Docker

Dalam Fail Docker anda, tambahkan fail skema pada direktori /docker-entrypoint-initdb.d menggunakan arahan ADD. Skrip docker-entrypoint.sh dalam bekas akan melaksanakan sebarang fail .sql dalam direktori ini terhadap pangkalan data.

Contoh Fail Docker:

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

3. Bina dan Jalankan Bekas Docker

Setelah Fail Docker diubah suai, bina dan jalankan bekas itu:

docker-compose build
docker-compose up

4. Nota Tambahan

  • Pastikan bahawa pengguna MySQL mempunyai keistimewaan yang mencukupi untuk mencipta pangkalan data dan jadual.
  • Laraskan hos MySQL, nama pengguna, kata laluan dan nama skema seperti yang diperlukan .
  • Sahkan bahawa skrip docker-entrypoint.sh boleh dilaksanakan oleh pengguna root dalam bekas, seperti bertanggungjawab untuk melaksanakan pemulaan skema.

Dengan mengikuti langkah ini, anda boleh berjaya memulakan pangkalan data MySQL dengan skema dalam bekas Docker dan menghapuskan isu CMD tidak dilaksanakan dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Pangkalan Data MySQL dengan Skema Di 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