导入data.sql MySQL Docker容器
如果我有一个data.sql,我怎么可以导入数据库到我的mysqldocker容器? 我如何导入数据库数据。 在被docker化的世界里,这增加了一层复杂性。 请一些方法。
这里我的docker-compose.yml:
nginx: build: ./nginx/ container_name: nginx-container ports: - 80:80 links: - php volumes_from: - app-data php: build: ./php/ container_name: php-container expose: - 9000 links: - mysql volumes_from: - app-data app-data: image: php:7.0-fpm container_name: app-data-container volumes: - ./www/html/:/var/www/html/ command: "true" mysql: image: mysql:latest container_name: mysql-container ports: - 3306:3306 volumes_from: - mysql-data environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: name_db MYSQL_USER: user MYSQL_PASSWORD: password mysql-data: image: mysql:latest container_name: mysql-data-container volumes: - /var/lib/mysql command: "true"
使用卷装载将您的转储挂载到/docker-entrypoint-initdb.d/yourdump.sql
下
mysql: image: mysql:latest container_name: mysql-container ports: - 3306:3306 volumes_from: - mysql-data - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: name_db MYSQL_USER: user MYSQL_PASSWORD: password
这将在容器启动时导入转储,请参阅https://hub.docker.com/_/mysql/下的“初始化新实例”
附加提示:停止使用docker-compose.yml v1 – 它的可怕:)
之后您可以导入数据库:
docker exec -i mysql-container mysql -uuser -ppassword name_db < data.sql