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

相关推荐
zhong liu bin2 小时前
MySQL数据库面试题整理
数据结构·数据库·mysql
学Linux的语莫3 小时前
kubekey离线搭建k8s高版本>23安装,cri-dockerd通信
云原生·容器·kubernetes
luckys.one6 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
jakeswang10 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql
一成码农10 小时前
MySQL问题7
数据库·mysql
慕容晓开11 小时前
docker,本地目录挂载
docker
Kt&Rs12 小时前
MySQL复制技术的发展历程
数据库·mysql
手握风云-12 小时前
MySQL数据库精研之旅第十六期:深度拆解事务核心(上)
数据库·mysql
Mr. Cao code12 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
Dontla13 小时前
Docker多共享网络配置策略(Docker多网络、Docker networks、Docker Compose网络、Docker网络、Docker共享网络)
网络·docker·容器