docker 安装 mysql

目录

1、下载镜像文件

2、创建实例并启动

(1)创建并启动mysql

(2)查看docker正在运行中的容器

(3)使用mysql客户端连接工具,测试连接。

(4)进入mysql容器内部

[3、MySQL 配置](#3、MySQL 配置)

(1)conf文件夹中创建并修改配置文件(修改mysql字符编码)

(2)my.cnf中需要添加的内容

4、重启mysql,应用到配置


直接 su root ,切换到root用户,之后的命令就可以不用加 sudo 啦,当然已经是root用户,加上与不加都无所谓的哦。

1、下载镜像文件

(1)docker pull mysql (不输版本号,默认安装最新版,我以5.7为例)

复制代码
docker pull mysql:5.7

(2)查看你下载的镜像

sql 复制代码
sudo docker images

执行结果:


2、创建实例并启动

(1)创建并启动mysql

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

成功之后会出现一个很长一串的标志,说明就成功了。

参数说明:

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口

-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机

-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机

-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机

-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

(2)查看docker正在运行中的容器

sql 复制代码
docker ps

执行结果:

(3)使用mysql客户端连接工具,测试连接。

连接成功,说明MySQL已经安装好了。

(4)进入mysql容器内部

直接在根目录输入命令即可。

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

查看目录结构:

ls

查看mysql装在哪里:

whereis mysql

退出容器:

exit;


3、MySQL 配置

(1)conf文件夹中创建并修改配置文件(修改mysql字符编码)

diff 复制代码
vi /mydata/mysql/conf/my.cnf

注意

mysql版本不一样的话(高版本),conf这个文件夹的位置发生了变化,通过ls命令查看一个conf在哪里,然后再去修改。

(2)my.cnf中需要添加的内容

编辑文件指令:

i 进入编辑模式

Esc 退出编辑模式

:wq 保存并退出

注意:配置文件中的格式一定要正确,粘贴进来时,会自己变换格式,记得自己进行换行哦。

sql 复制代码
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

注意:解决 MySQL 连接慢的问题

在配置文件中加入如下,并重启 mysql

mysqld

skip-name-resolve

解释: skip-name-resolve:跳过域名解析


4、重启mysql,应用到配置

sql 复制代码
docker restart mysql

注意

配置文件中的格式一定要正确,粘贴进来时,会自己变换格式,记得自己进行换行哦。

可以根据下面截图中的命令去运行看看:


至此,mysql就算彻底安装成功啦!

相关推荐
tokepson13 小时前
Mysql下载部署方法备份(Windows/Linux)
linux·服务器·windows·mysql
C_心欲无痕15 小时前
Dockerfile:构建 Docker 镜像
运维·docker·容器
zz_nj16 小时前
工作的环境
linux·运维·服务器
C_心欲无痕16 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx
suijishengchengde17 小时前
****LINUX时间同步配置*****
linux·运维
什么都不会的Tristan17 小时前
MybatisPlus-扩展功能
数据库·mysql
幻云201017 小时前
AI自动化编排:从入门到精通(基于Dify构建AI智能系统)
运维·人工智能·自动化
qiuqyue17 小时前
基于虹软Linux Pro SDK的多路RTSP流并发接入、解码与帧级处理实践
linux·运维·网络
C_心欲无痕17 小时前
Docker 本地部署 CSR 前端项目完整指南
前端·docker·容器
爱跑马的程序员18 小时前
Linux 如何查看文件夹的大小(du、df、ls、find)
linux·运维·ubuntu