本文详细介绍了如何在Docker环境中安装MySQL,包括创建数据卷、启动容器、配置数据库不区分表名大小写、开启远程访问权限及开放防火墙端口等步骤,最后通过Navicat测试连接,确保MySQL服务正常运行。适合初学者快速上手Docker部署MySQL服务。
任务描述
随着云计算和容器技术的发展,Docker成为了应用部署的首选方案之一。本任务旨在指导学生掌握在Docker环境中安装与配置MySQL数据库的方法,包括数据卷的创建、容器的启动与配置、安全设置以及远程访问的实现。通过完成本任务,学生将能够独立完成基于Docker的MySQL数据库环境搭建,为后续学习和实际项目开发打下坚实基础。
实验实训
- 目标:通过本实验,学员应能熟练掌握Docker环境下MySQL的安装、配置与管理技巧。
- 要求: 完成所有任务步骤,确保MySQL容器正常运行。 能够成功从外部客户端连接到MySQL数据库。
- 编写实验报告,总结遇到的问题及解决方案。
任务实施
1、安装镜像并创建数据卷mysql
可以先到hub.docker.com/ 搜索MySQL镜像
或使用docker search 镜像名称
[root@localhost /]# docker pull mysql
[root@localhost /]# docker volume create mysql
2、启动mysql容器
如果数据库不区分大小写,需要在镜像后加参数 --lower_case_table_names=1
docker run --name mysql8 \
-v /var/lib/docker/volumes/mysql/conf:/etc/mysql/conf.d \
-v /var/lib/docker/volumes/mysql/logs:/var/log/mysq \
-v /var/lib/docker/volumes/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root -d -i -p 3306:3306 mysql:latest --lower_case_table_names=1
可以进入容器查看区分大小写是否生效:
show global variables like '%lower_case%';
show global variables like '%datadir%'
修改my.cnf文件一般目录在容器的/etc/mysql/my.cnf位置 在[mysqld]下加入lower_case_table_names=1
重启docker容器 docker restart 容器id
3、查看mysql进程
docker ps -a
4、进入mysql容器,并登陆mysql
docker exec -it mysql8 bin/bash
mysql -uroot -p
5、开启远程访问权限
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
6、开放端口3306并生效
firewall-cmd --zone=public --add-port=3306/tcp --permanet
firewall-cmd --reload
重启docker中mysql重启
docker ps -a
#查询出containerid
docker restart 24ffe14fb2aa
7、可以通过Navicat进行新建连接进行测试