环境配置-MySQL-01-Docker安装MySQL8.0

一、搜索拉取镜像

docker search mysql

docker pull mysql #不写版本号 默认拉取最新版本

docker pull mysql:8.0.23 #写版本号,则拉取确定的版本

二、查看镜像

docker images

三、启动镜像

docker run \
--name mysql8 \
--privileged=true \
--restart=always \
-p 3356:3306 \
-v /usr/local/docker/mysql8/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql8/data:/var/lib/mysql \
-v /usr/local/docker/mysql8/config:/etc/mysql \
-v /usr/local/docker/mysql8/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-d mysql:8.0.23 \
--lower_case_table_names=1

分析:

  • --name mysql8:给容器命名
  • --privileged=true
  • --restart=always:docker启动时,自启动
  • -p 3356:3366:端口映射,第一个3356是映射出去的端口(即宿主机的端口,需要放开防火墙/安全组的端口),第二个3306是这个容器的端口
  • -v /usr/local/docker/mysql8/data:/var/lib/mysql:文件挂载,:前为宿主机的文件存放路径,之后为容器内对应的文件存放路径。
  • -e MYSQL_ROOT_PASSWORD=123456:环境变量设置,此处是设置root用户的登录密码。
  • -e TZ=Asia/Shanghai:环境变量设置,服务器的时区可能和你当前电脑时区不一样,所以可以设置MySQL时区以防万一。
  • -d mysql:8.0.23:选择的镜像。-d:后台运行容器,并返回容器id。
  • --lower_case_table_names=1:配置表名忽略大小写。Docker安装的MySQL默认区分大小写。

注:

  1. 参数顺序一定要对,--lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是MySQL配置。
  2. 容器接口地址最好设置成3306,设置成其它应该是需要修改配置文件,会导致外部连接不上。

MySQL官方文档有记录:

lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited。

只有在初始化的时候设置lower_case_table_names=1才有效

四、检查启动情况

4.1、查看镜像

docker ps  # 查看所有正在运行的容器
docker ps -a  #-a 表示查看所有容器 包括未删除的历史容器

4.2、查看日志

docker logs [容器名|容器id] # 查看容器的执行日志
docker logs [容器名|容器id] -f # 查看实时日志
# 具体参数
--details        Show extra details provided to logs
-f, --follow     Follow log output
--since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string    Number of lines to show from the end of the logs (default "all")
-t, --timestamps     Show timestamps
--until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

4.3、进入容器运行MySQL

docker exec -it [容器名|容器id] bash

mysql -uroot -p
# 输入密码

4.4、放开防火墙接口/安全组

4.5、外部连接测试

Navicat连接 或者 项目运行/测试类测试

五、参考文章

  1. 宁在春, Docker 安装MySQL8.0
posted @   lannntuuu  阅读(257)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示