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

相关推荐
Eip不易也不e29 分钟前
教程之同时安装两个版本的 mysql
mysql
sauTCc32 分钟前
Docker初探
docker
云上艺旅1 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
c无序1 小时前
【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态
docker·容器·架构
FixBug_Nick1 小时前
使用Docker安装及使用最新版本的Jenkins
docker·容器·jenkins
Kagol1 小时前
macOS 和 Windows 操作系统下如何安装和启动 MySQL / Redis 数据库
redis·后端·mysql
ghostwritten3 小时前
Run Milvus in Kubernetes with Milvus Operator
容器·kubernetes·milvus
Qi妙代码3 小时前
MYSQL基础
数据库·mysql·oracle
Zero_to_zero12343 小时前
解决docker的ubuntu系统中文乱码问题
ubuntu·docker·容器
@郭小茶3 小时前
docker-compose方式部署docker项目
运维·docker·容器