質問: やりたいこと ------- DockerのMySQLの公式イメージ(mysql:5.6)を用いて、 `/docker-entrypoint-initdb.d/`のディレクトリ内にある`.sql`形式のファイルを読み込んで欲しい。 問題点 ---- `/docker-entrypoint-initdb.d/`内に`.sql`形式ファイルを置けば自動的にsqlを読み込んでくれると書いてありますが、 1つのファイルは読み込んでくれますが、1つのファイルは読み込んでくれません。 状況 --- * 実際に`/docker-entrypoint-initdb.d/`内には`.sql`形式のファイルは存在しております * `docker-compose up`を行っても、特にエラーははかれておりません * コンテナ内で`mysql -u root -p`でMySQL内に入ることはできるので、起動していないということはないです * 1つファイル(create.sql)は機能しておりますが、もう一つのファイル(import.sql)は機能しておらず、データが挿入できていない * 読み込まないファイルサイズは700MBオーバーであり、少しも読み込んでいない docker-compose.ymlは以下のように記載しております。 ``` db: build: ./mysql image: mysql:5.6 ports: - "3306:3306" volumes: - ./mysql/init/:/docker-entrypoint-initdb.d/ environment: MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} ``` また、`.sql`形式のファイルは2つあり、下記のとおりです。 `create.sql` ``` create database test; ``` `import.sql` ``` create table... insert into... ``` 同じように`/docker-entrypoint-initdb.d/`内のファイルが読み込まれなかったことのある方はおりますでしょうか? よろしくお願いいたします。
回答: こちらはimport.sqlのDDLがの書式がおかしかったようです。 今回はSequelProからエクスポートしたのですが、 各テーブルのinsert文の最初に`INSERT INTO user VALUES`という空のinsert文があり、それが問題だったようです。 なので、mysqldumpを利用して、それを利用してデータを挿入しました。 ご迷惑おかけいたしました。