centos7通过docker去实现mysql然后navicat连接

Posted 闭关苦炼内功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7通过docker去实现mysql然后navicat连接相关的知识,希望对你有一定的参考价值。

1、首先准备环境

看下已经配置好的VM虚机NAT网络

然后去配置宿主机的网络





c. ssh远程之前,宿主机win7要能够ping通vm虚机
ping之前,先在宿主机 win + r --> 运行 --> cmd --> ipconfig 查看网络
然后去vm虚机,终端下 ifconfig 查看网络,如果 command not found
那就yum install -y net-tools
确保宿主机和vm虚机是在相同网段的

ifconfig没有那个命令
使用ip a能查到enss33网卡名

vm虚机没有网络,所以需要手动去配置网络


请严格按照以下配置文件内容,有则改之,无则勿动,记得把UUID那行删掉
手动修改

都可以ping baidu.com,那就可以上外网了

下面VM虚机安装 net-tools ,安装前无法使用ifconfig



安装后再看,可以用ifconfig查看ip信息了

到这,基本网络搞定


2. 通过宿主机win10 ssh远程 VM虚机

  • 个人推荐使用 --> MobaXterm
  • 下载后解压即用


双击快捷方式打开它


选择ssh


点完OK然后输入密码
、即可登录如下所示


就可在里面复制粘贴了

到这就为后面安装docker做好铺垫了

ctrl + insert键 复制

shift + insert键 粘贴


3. 安装docker

# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce
# Step 4: 开启Docker服务
systemctl start docker

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]







4. 使用docker安装mysql

先查看一下

搜一下mysql的容器镜像

docker search mysql:5.7.28

编写Dokcerfile文件
vi Dokcerfile

#!/bin/bash

FROM mysql:5.7.28

编写build去构建
vi build

#!/bin/sh

docker build -t docker-mysql:5.7.28 .

然后加可执行权限
chmod u+x build

  • 编写run脚本去创建并启动容器
    vi run
#!/bin/bash

cmd=(
    docker run
    -dit
    --name mysql57-1
    --hostname=mysql57
    --privileged=true
    -p 3306:3306
    -e MYSQL_ROOT_PASSWORD=qwer@1234
	docker-mysql:5.7.28
)

"${cmd[@]}"
# 解释下各个参数的含义
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name=mysql57-1: 为容器指定一个名称
--hostname=mysql57: 指定容器的hostname
-v: 绑定一个卷
--privileged=true: 以特权方式启动容器
-e MYSQL_ROOT_PASSWORD=qwer@1234  指定容器中mysql数据库初始root密码

然后加可执行权限
chmod u+x run

  • 然后先执行build构建,其实是拉取容器镜像,然后改为一个新的名字,tag为docker-mysql:5.7.28
    ./build

  • 然后再执行run,是创建并启动容器
    ./run

  • 然后进入容器内部
    可以使用容器Name进入
    docker exec -it mysql57-1 bash

或者使用容器ID进入
docker exec -it container-ID bash

简化一些,使用容器ID前3位

  • 进入容器后,进入mysql数据库
    mysql -uroot -pqwer@1234

exit退出后重新进入,试试

再退出数据库,退出容器,查看容器状态

5. 使用Navicat远程连接mysql

  • 用Navicat可以对数据库用户进行管理

当然自己用root无妨,其实一般不用root,所以可以创建一个用户


然后服务器权限,这里指的是对数据库操作的权限


一般的增删改查就ok

然后再点保存

可以看到

下面连接测试

所以就使用个人创建的用户就可以了

尤其是开发的时候,千万要慎用 mysql的root用户,搞不好删库,麻烦大了

6. 好处说明:

使用这种方式,对于个人跑数据库表测试是非常nice的,免安装
直接对容器进行操作就OK了,重启数据库直接重启容器就好了啦

  • 重启容器

  • 再次进入

7. 备份意识(避坑防甩锅)

1、打快照

这种方式其实就是保护环境,如果后面(sudo rm -rf /*)误删操作,还可以回退到快照1状态的环境

2、对mysql数据库进行自动化备份

参考:mysql5.7.29数据库备份之linux服务器自动备

滴!没有备份意识的码农不是好码农,当然,你可以不备份,那就等着背锅咯


打完收工,你学会了没?

肝文不易,如果觉得写得好的话

点个赞再走哈,记得收藏+关注!

以上是关于centos7通过docker去实现mysql然后navicat连接的主要内容,如果未能解决你的问题,请参考以下文章

阿里云服务器CentOS7.3上通过Docker安装MySQL

工作随笔 - CentOS7以及docker搭建keepalived实现浮动VIP

Centos7通过Docker安装Sentry(哨兵)

Linux(centos7)下安装Docker

Centos7-Docker安装

centos7 docker 安装 mysql5.7.24 导入11G的sql