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

相关推荐
Joren的学习记录7 分钟前
【Linux运维大神系列】Docker详解(二)
linux·运维·docker
蟹至之13 分钟前
【MySQL】JDBC的使用(万字解析)
java·数据库·mysql·jdbc
Fortune_yangyang22 分钟前
Docker 入门指南:从 “容器小白” 到快速上手
运维·docker·容器
·云扬·1 小时前
InnoDB事务隔离级别与加锁机制深度解析
数据库·sql·mysql
四谎真好看1 小时前
MySQL 学习笔记(进阶篇2)
笔记·学习·mysql·学习笔记
计算机毕设指导61 小时前
基于微信小程序的校园物品租赁与二手交易系统【源码文末联系】
spring boot·mysql·微信小程序·小程序·tomcat·maven·intellij-idea
计算机毕设指导62 小时前
基于微信小程序的水上警务通系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
明月心9522 小时前
创建Mysql 用户 并赋权
mysql
一位代码2 小时前
mysql | 环境变量问题及其配置方法详解
数据库·mysql
cws2004012 小时前
HeidiSQL 使用操作说明书
运维·数据库·windows·mysql·heidisql