docker安装配置mysql

一、安装mysql

1、使用docker下载mysql镜像源

复制代码
sudo docker pull mysql:5.7  #下载最新版本后面不加上:版本号

如果出现拉去镜像错误可参考文章(https://blog.csdn.net/weixin_39764056/article/details/145042307

复制代码
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

2、查看mysql镜像源

复制代码
sudo docker images

3、创建启动mysql容器

复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=root \
  -v /mydata/mysql/conf:/etc/mysql/conf.d/ \
  -v /mydata/mysql/data:/var/lib/mysql \
  -v /mydata/local/mysql/log:/var/log/mysql \
  mysql:5.7

docker run :创建启动容器
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql/conf.d/:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d mysql:5.7:使用那个版本创建启动的容器
--restart=always:自启动容器

4、查看创建的容器(查看容器发现容器不是up状态,可使用docker logs mysql 查看日志是那儿出现的问题,一般情况是没有找到对应的文件目录,需要提前创建)

复制代码
docker ps # 查看启动的容器
docker ps -a # 查看所有的容器,包含停止的

5、测试连接Navicat

二、配置mysql容器

1、可进入mysql容器,查看mysql容器内的文件

复制代码
docker exec -it mysql /bin/bash

2、exit退出mysql容器,在虚拟机中配置文件映射到mysql容器内,创建配置文件my.cnf

复制代码
vi /mydata/mysql/conf/my.cnf  # 是没有my.cnf文件的,创建后里面是空的,插入以下内容后保存


[mysqld]
character-set-server=utf8  # 字符集设为 utf8
collation-server=utf8_unicode_ci  # 排序规则对应 utf8,而非 latin1

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

3、保存退出后重启mysq容器(重启后发现容器关闭可能是因为里面的字符错误或者格式代码与mysql版本不适配,需要重新编辑my.cnf里面的内容再重启容器)

复制代码
docker restart mysql

4、查看mysql容器内部的文件映射情况

进入文件夹/etc/mysql/conf.d,使用命令cat my.cnf即可

相关推荐
未来龙皇小蓝20 分钟前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
学不完的38 分钟前
Docker数据卷管理及优化
运维·docker·容器·eureka
枕布响丸辣1 小时前
MySQL 从入门到精通:完整操作手册与实战指南
数据库·mysql
原来是猿2 小时前
MySQL【用户管理】
数据库·mysql
hansaes3 小时前
第一章:容器到底是什么
docker
sthnyph4 小时前
初识MySQL · 库的操作
数据库·mysql
原来是猿4 小时前
MySQL【视图】
数据库·mysql
2401_873587825 小时前
MySQL——事务管理
数据库·mysql
Sst的头号粉丝5 小时前
Docker——compose
运维·docker·容器
0xDevNull5 小时前
MySQL 三大日志系统深度解析:Binlog、Redo Log、Undo Log
数据库·mysql