文章目录


1、首先准备环境



(1)vmware
​http://210.22.22.150:3731/software/Linux/VMware/​​​​



(2)安装centos7
​centos7 无界面安装​

  • 无界面的好处就是:
    a. 安装的时候快速(有界面安装的过程很慢)
    b. 对内存占用比较小(有界面会占用内存资源,导致虚机很卡)


(2)ssh远程工具
​http://210.22.22.150:3731/software/Linux/ssh-tools/​​​​



(3)网络配置
a. 宿主机win7要能连网,能上百度
b. vmware要配置好网络
​centos虚拟机NAT模式网络访问外网​



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

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

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

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

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

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

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

然后去配置宿主机的网络

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

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

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

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

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

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

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

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

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

c. ssh远程之前,宿主机win7要能够ping通vm虚机

ping之前,先在宿主机 win + r --> 运行 --> cmd --> ipconfig 查看网络

然后去vm虚机,终端下 ifconfig 查看网络,如果 command not found

那就yum install -y net-tools

确保宿主机和vm虚机是在相同网段的

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

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

ifconfig没有那个命令

使用ip a能查到enss33网卡名

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

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

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

手动修改

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

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

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

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

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

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

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

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

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

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

到这,基本网络搞定


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

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

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

双击快捷方式打开它

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

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

选择ssh

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

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

点完OK然后输入密码

、即可登录如下所示

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

就可在里面复制粘贴了

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

到这就为后面安装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]

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

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

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

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

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

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

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

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

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

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

4. 使用docker安装mysql

先查看一下

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

搜一下mysql的容器镜像

docker search mysql:5.7.28

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

编写Dokcerfile文件

​vi Dokcerfile​

#!/bin/bash

FROM mysql:5.7.28

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

编写build去构建

​vi build​

#!/bin/sh

docker build -t docker-mysql:5.7.28 .

然后加可执行权限

​chmod u+x build​

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

  • 编写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​

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

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

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

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

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

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

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

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

或者使用容器ID进入

​docker exec -it container-ID bash​

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

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

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

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

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

exit退出后重新进入,试试

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

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

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

5. 使用Navicat远程连接mysql

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

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

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

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

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

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

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

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

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

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

一般的增删改查就ok

然后再点保存

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

可以看到

下面连接测试

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

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

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

6. 好处说明:

使用这种方式,对于个人跑数据库表测试是非常nice的,免安装

直接对容器进行操作就OK了,重启数据库直接重启容器就好了啦



重启容器
centos7通过docker去实现mysql然后navicat连接_centos_67



再次进入



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

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

1、打快照

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

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

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

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

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

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


打完收工,你学会了没?

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

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