11、docker 安装 mysql(单机版)

一、docker 环境下安装中间件总体步骤 

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像--服务端口映射

 二、安装 mysql

1、docker hub 上面查找 mysql 镜像

 2、从docker hub上拉取 mysql 镜像到本地(示例标签为5.7)

docker pull mysql:5.7

3、docker images 查看是否有拉取到的 mysql

docker images mysql

 4、使用 mysql5.7 镜像创建容器实例(也叫运行镜像)

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的mysqlroot密码 -d mysql:5.7

 进入容器,并进入 mysql 

docker exec -it 容器ID /bin/bash

mysql -uroot -p

 这个时候,就已经进入 mysql 的交互命令行,可以进行一些建库建表操作

 5、使用 navicat 客户端连接我们 docker mysql

因为我的 docker 服务是安装在阿里云ECS服务器上的,所以需要在安全组开放一下 3306 端口。

源 0.0.0.0 表示不限定特定IP的访问。

 

此时,我们一个简易版的 mysql 已经运行起来了。可以正常的增删改查。但是还是存在两个比较严重的问题。
1、中文乱码
2、容器被删了,或者被停掉了,我们的业务数据就没了 (因为容器存在于内存中)

 中文乱码演示

 查看 mysql 的字符集编码,发现 docker上 mysql 默认字符集编码 都是 latin1

SHOW VARIABLES LIKE 'character%';

 6、mysql 实战版

为了避免冲突,先删除我们上面新建的 mysql 容器。

 (1)新建 mysql 容器实例,挂载容器数据卷

docker run -d -p 3306:3306 
--privileged=true 
-v /usr/matrix/mysql/log:/var/log/mysql 
-v /usr/matrix/mysql/data:/var/lib/mysql 
-v /usr/matrix/mysql/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=你的mysqlroot密码
--name mysql mysql:5.7

-v 容器数据卷映射   宿主机路径:容器路径

--privileged=true  扩大容器的权限解决挂载目录没有权限的问题

-d 后台启动

--name 给容器实例取别名

 (2)新建 my.cnf,通过容器卷同步给mysql容器实例,解决中文乱码问题

my.cnf 内容如下

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

 (3)重新启动 mysql 容器实例再重新进入并查看字符编码

 (4)重新建库建表插入一条中文数据看效果

 (5)删除当前mysql实例,重新启动一个配置完全相同的实例,查看数据是否存在

 

 数据还在。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值