桓楠百科网

编程知识、经典语录与百科知识分享平台

Dockerfile构建mysql8.0.27数据库

自定义修改我们需要的mysql8数据库并打包镜像

1、sql文件内容 1.sql

  • mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接。
  • 启动容器后root密码为123,需要自己修改下密码。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

2、mysql.cnf配置文件

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
# 开启事件
event_scheduler = 1
# 设置时区为东八区
default-time-zone = '+8:00'
# 修改log_bin_trust_function_creators=1,不然无法创建函数
log_bin_trust_function_creators = 1

[mysql]

default-character-set=utf8

3、Dockerfile文件内容

# mysql 官方镜像
FROM mysql:8.0.27
# 作者

# 复制配置文件
COPY mysql.cnf /etc/mysql/conf.d/

# 把要执行的sql文件放到/docker-entrypoint-initdb.d/目录下,容器会自动执行这个sql
COPY 1.sql /docker-entrypoint-initdb.d/

# 给执行文件增加可执行权限
RUN chmod a+x /docker-entrypoint-initdb.d/1.sql

4、根据dockerfile编译新镜像

# 构建镜像
docker build -t 6013/mysql:8.0.27 .

# 运行容器,-e MYSQL_ROOT_PASSWORD=123 这个参数不能少,设置的密码没用,默认还是123
docker run -d  --restart=always --name mysql8 -p 5306:3306 -e MYSQL_ROOT_PASSWORD=123 6013/mysql:8.0.27
# 根据实际情况修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
FLUSH PRIVILEGES;
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言