2019年3月5日

mysql docker初始table設定

這個是Dockerfile的內容

FROM mysql

ENV MYSQL_DATABASE some_service_schema

COPY *.sql /docker-entrypoint-initdb.d/

第二行是給定預設schema
第三行的sql script就會在預設的schema上執行


值得注意的是script執行的順序是照檔名排列順序的。

本來寫了兩個script檔案,叫 "Table.sql" 和 "InitialData.sql",結果這樣就先執行了InitialData,但Table還沒建出來,就失敗了,然後失敗了也沒什麼提示(docker logs忘記看不看得到了),但失敗只是InitialData失敗,Table那個還是有成功,連線進去看DB內容就會看到有Table存在,裡面卻沒有資料,最後將這兩個檔案改成 "1.Table.sql" 和 "2.InitialData.sql" 就沒問題了。

還有,mysql image latest版本的連線有個什麼SSL的問題,在ConnectionString中加上allowPublicKeyRetrieval=true才可以連線,只加SslMode=none是無法連線的。

沒有留言: