docker 安装mysql 5.7 详细保姆级教程

1. 安装mysql(5.7)

docker pull mysql:5.7

若是拉取不了,可以配置下 docker 源

2. 查看是否安装成功

docker images

下图就是成功了

3.创建mysql专用目录、数据挂载目录、配置文件目录 ,演示目录在于/home/下

//命令逐条执行

cd /home/
mkdir mysql
cd mysql
mkdir data
mkdir conf
mkdir log

如下图:

4. 创建自定义配置文件

//延续上方命令
cd conf
vi my.cnf

如下图

vi打开my.cnf 后 插入以下内容后,保存并退出

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

5. 创建并启动容器

docker run \
-p 3306:3306 \
--name mysql57 \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

-p 3306:3306  主机端口映射到容器中的端口
--name mysql57 指定容器名称
-v /home/mysql/log:/var/log/mysql 目录映射,mysql日志文件保存宿主机上,便于查看
-v /home/mysql/data:/var/lib/mysql 目录映射,mysql数据文件保存在宿主机上,以便数据持久化
-v /home/mysql/conf:/etc/mysql/conf.d 目录映射, 可以在宿主机上自定义配置文件
--restart=always docker 自动重启
-e MYSQL_ROOT_PASSWORD=123456  设置mysql root账户 密码
-d mysql:5.7 使用哪个docker 镜像

如下图: 回车后,容器id 打出

注意其中的 配置映射关系
/home/mysql/conf:/etc/mysql/conf.d

很多博主采用/etc/mysql 或者 /etc/mysql/conf

实际是错误的(可能拉取的5.7版本不对,当前测试并且写教程时间2024-12-13),从日志中会看到,如下提示

通过查看mysql 5.7版本一些信息

docker image inspect mysql:5.7 |grep -i version

6.查看mysql 是否创建成功

docker ps -a

如下图成功

7. 访问mysql (当前使用Navicat for mysql)

下图成功连接

8. 一些报错

1. 开启远程访问

docker exec -it mysql57 /bin/bash
mysql -u root -p
use mysql;
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

执行如下图;

2. 程序中访问可能还会报错,如下

2.1 在 自定义配置的my.cnf 中加入以下代码

skip-grant-tables

如下

2.2 保存后重启服务或者docker 都行

参考链接

Docker 部署 MySQL 5.7 完整教程_docker mysql 5.7-CSDN博客

Docker实操:安装MySQL5.7详解(保姆级教程)-腾讯云开发者社区-腾讯云

mysql 5.7 设置root远程访问 - cglmj - 博客园

相关推荐
码农丁丁1 小时前
为什么数据库不应该使用外键
数据库·mysql·oracle·数据库设计·外键
随心Coding3 小时前
【MySQL】存储引擎有哪些?区别是什么?
数据库·mysql
颜淡慕潇4 小时前
【K8S系列】在 K8S 中使用 Values 文件定制不同环境下的应用配置
云原生·容器·kubernetes·环境配置
旦沐已成舟4 小时前
K8S-Pod的环境变量,重启策略,数据持久化,资源限制
java·docker·kubernetes
github_czy4 小时前
(k8s)k8s部署mysql与redis(无坑版)
redis·容器·kubernetes
超级阿飞5 小时前
利用Kubespray安装生产环境的k8s集群-实施篇
elasticsearch·容器·kubernetes
羊小猪~~7 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
milk_yan8 小时前
Docker集成onlyoffice实现预览功能
前端·笔记·docker
苹果醋310 小时前
golang 编程规范 - Effective Go 中文
java·运维·spring boot·mysql·nginx
暮湫11 小时前
MySQL(1)概述
数据库·mysql