第15章 Docker环境下快速构建MySQL数据库服务器:学生实践指南

1,260 阅读2分钟

本文详细介绍了如何在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进行新建连接进行测试