Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để khởi tạo cơ sở dữ liệu MySQL với lược đồ trong vùng chứa Docker?

Tôi đã gặp vấn đề tương tự này khi tôi muốn khởi tạo giản đồ của bản sao MySQL Docker của mình, nhưng tôi gặp khó khăn trong việc làm cho điều này hoạt động sau khi thực hiện một số Googling và làm theo các ví dụ của người khác. Đây là cách tôi đã giải quyết nó.

1) Kết xuất lược đồ MySQL của bạn vào một tệp.

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

2) Sử dụng lệnh ADD để thêm tệp giản đồ của bạn vào /docker-entrypoint-initdb.d trong vùng chứa Docker. docker-entrypoint.sh tệp sẽ chạy bất kỳ tệp nào trong thư mục này kết thúc bằng ".sql" chống lại cơ sở dữ liệu MySQL.

Dockerfile:

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) Khởi động phiên bản Docker MySQL.

docker-compose build
docker-compose up

Cảm ơn Thiết lập MySQL và nhập kết xuất bên trong Dockerfile để gợi ý cho tôi về docker-entrypoint.sh và thực tế là nó chạy cả tập lệnh SQL và shell!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL so với MySQL:Cái nào tốt nhất?

  2. Phần còn lại trong PostgreSQL, MS SQL Server, MySQL và SQLite

  3. bbPress:Cách tìm ánh xạ các tệp đính kèm đến các bài đăng tương ứng của chúng

  4. Làm cách nào để tìm dữ liệu không tồn tại từ một Bảng khác bằng cách tham gia?

  5. Cách kết nối với cơ sở dữ liệu bằng ứng dụng khách NaviCat MySQL