mysql啟動時自動執(zhí)行初始建表腳本

默認情況下,mysql鏡像創(chuàng)建的docker容器啟動時只是一個空的數(shù)據(jù)庫實例,為了簡化docker部署,我們需要在docker創(chuàng)建mysql容器的時,數(shù)據(jù)庫和表已經(jīng)自動建好,初始化數(shù)據(jù)也已自動錄入,也就是說容器啟動后數(shù)據(jù)庫就可用了。這就需要容器啟動時能自動執(zhí)行sql腳本。
在mysql官方鏡像中提供了容器啟動時自動執(zhí)行/docker-entrypoint-initdb.d
也就是說只要把你自己的初始化腳本放到/docker-entrypoint-initdb.d/文件夾下就齊活了

# Dockerfile

FROM mysql:5.7.28

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

docker啟動命令如下

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=db_aicube -d mysql:5.7.28

db.aicube.sql如下:

-- 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS db_aicube  DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_croatian_ci;

-- 使用其數(shù)據(jù)庫
use db_aicube;

--
-- 表的結(jié)構(gòu) `auth_group`
--

CREATE TABLE `auth_group` (
  `id` int(11) NOT NULL,
  `name` varchar(150) COLLATE utf8_croatian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci;

···
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容