mysql导入初始化脚本_Docker部署时Mysql导入初始数据乱码问题

前言

version: '3'

services:

mysql:

container_name: blog-mysql

image: mysql/mysql-server:5.7

environment:

MYSQL_DATABASE: blog

MYSQL_ROOT_PASSWORD: root

MYSQL_ROOT_HOST: '%'

ports:

- "3306:3306"

restart: always

blog:

container_name: blog

restart: always

build: .

working_dir: /blog

volumes:

- .:/blog

- ~/.m2:/root/.m2

expose:

- "8080"

depends_on:

- mysql

command: mvn clean spring-boot:run -Dspring-boot.run.profiles=docker

然后遇到一个问题,我需要在运行容器的时候运行初始化数据库的脚本才行,不然项目将无法使用,然后就开始在网上找方法。

Docker MySQL启动时自动执行初始建表脚本

通过查找资料,了解到:在mysql官方镜像中提供了容器启动时自动执行/docker-entrypoint-initdb.d文件夹下的脚本的功能(包括shell脚本和sql脚本) docker-entrypoint.sh中下面这段代码就是干这事儿的。

ls /docker-entrypoint-initdb.d/ > /dev/null

for f in /docker-entrypoint-initdb.d/*; do

process_init_file "$f" "${mysql[@]}"

done

#usage: process_init_file FILENAME MYSQLCOMMAND...

#ie: process_init_file foo.sh mysql -uroot

#(process a single initializer file, based on its extension. we define this

#function here, so that initializer scripts (*.sh) can use the same logic,

#potentially recursively, or override the logic used in subsequent calls)

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值