如何使用docker-compose将sakila db数据插入mysql?

问题描述 投票:0回答:1

我希望能够创建数据库和架构,并使用 docker-compose 文件将数据插入 MySQL。

该数据库是著名的sakila数据库。

我创建了一个 git 存储库来执行上述操作,并且 git 存储库是 this

当我运行下面的命令时

sudo docker-compose up --build --remove-orphans

我需要等待一段时间才能在 phpmyadmin 上显示数据,但我发现大多数数据库表都是空的。

所以我尝试将 MAX_EXECUTION_TIME=0 添加到 phpmyadmin 服务,希望它能够运行直到所有插入语句完成运行。

phpmyadmin:
    image: phpmyadmin
    restart: always
    depends_on:
        - mysql
    ports:
        - 8081:80
    environment:
        - MAX_EXECUTION_TIME=0
        - PMA_HOST=mysql
        - PMA_ARBITRARY=1

但是我的努力并不走运,有些表还没有数据。

我需要有关如何使插入数据即时且完整地工作的帮助。

mysql docker docker-compose phpmyadmin dockerfile
1个回答
0
投票

我意识到插入数据涉及数十万条插入语句需要时间才能完成;换句话说,速度取决于要插入的记录数。

另一方面,外键约束冲突会导致插入数据脚本突然退出,从而导致某些表没有数据,但当命令 'SET FOREIGN_KEY_CHECKS=0;' 时添加到插入数据脚本中

USE sakila;
SET FOREIGN_KEY_CHECKS=0;

Insert into film
(`film_id`,`title`,`description`,`release_year`,`language_id`,`original_language_id`,`rental_duration`,`rental_rate`,`length`,`replacement_cost`,`rating`,`special_features`,`last_update`)
Values
('258','DRUMS DYNAMITE','A Epic Display of a Crocodile And a Crocodile who must Confront a Dog in An Abandoned Amusement Park','2006','1',NULL,'6','0.99','96','11.99','PG','Trailers','2006-02-15 05:03:42.000')
;

一切顺利。

© www.soinside.com 2019 - 2024. All rights reserved.