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 - 博客园

相关推荐
Cloud云卷云舒4 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
生活爱好者!7 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
用户71333585156247 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
java_logo8 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客8 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
用户71333585156248 小时前
MySQL - InnoDB 的 Buffer Pool
mysql
Hui Baby8 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
欲速不达88209 小时前
Mysql并发DML锁等待的优化
数据库·mysql
L16247610 小时前
MySQL 全环境生产快速安装 + 完整配置手册(整合国产银河麒麟适配 + 主从补充版)
数据库·mysql
用户2333768521811 小时前
Docker 端口"时通时不通"的排查实战
docker