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就算彻底安装成功啦!

相关推荐
tntlbb2 分钟前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
drebander20 分钟前
MySQL 查询优化案例分享
数据库·mysql
Gabriel_liao31 分钟前
Docker安装Neo4j
docker·容器·neo4j
Linux运维技术栈1 小时前
Ansible(自动化运维)环境搭建及ansible-vault加密配置
运维·自动化·ansible
Bessssss3 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos
苹果醋33 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
小林coding3 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
jwensh3 小时前
【Jenkins】Declarative和Scripted两种脚本模式有什么具体的区别
运维·前端·jenkins
18号房客4 小时前
高级sql技巧进阶教程
大数据·数据库·数据仓库·sql·mysql·时序数据库·数据库架构
豆豆豆豆变4 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维