环境配置-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默认区分大小写。
注:
- 参数顺序一定要对,--lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是MySQL配置。
- 容器接口地址最好设置成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连接 或者 项目运行/测试类测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)