Bootstrap

Docker 之mysql从头开始——Docker下mysql安装、启动、配置、恢复备份sql、进入容器执行(查询)sql

1、mysql 安装

第一步 下拉镜像

docker pull mysql:8.0.20

第二步 启动镜像

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.20

查看是否启动成功

docker ps -a

第三步 启动成功后,进入容器内部拷贝配置文件,到宿主主机。

docker cp  mysql:/etc/mysql /mnt/sda1/mysql8.0.20

拷贝容器的 /etc/mysql目录到 主机目录/mnt/sda1/mysql8.0.20

第四步 删除mysql容器,重新创建容器

先停止容器;再删除容器

docker stop mysql;
docker rm mysql;

第五步 启动mysql ,挂载配置文件,数据持久化到宿主主机

在系统目录下创建脚本文件mysql8.0.20.sh

#!/bin/sh
docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /mnt/sda1/mysql8.0.20/mysql:/etc/mysql \
-v /mnt/sda1/mysql8.0.20/logs:/logs \
-v /mnt/sda1/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
  1. 命令解释:

     -p 端口映射

    --privileged=true  挂载文件权限设置

    --restart unless-stopped  设置 开机后自动重启容器

    -v /mnt/sda1/mysql8.0.20/mysql:/etc/mysql    挂载配置文件

    -v /mnt/sda1/mysql8.0.20/logs:/logs \      挂载日志

    -v /mnt/sda1/mysql8.0.20/data:/var/lib/mysql \  挂载数据文件 持久化到主机,

    -v /etc/localtime:/etc/localtime    容器时间与宿主机同步

    -e MYSQL_ROOT_PASSWORD=123456    设置密码

    -d  mysql:8.0.20   后台启动,mysql

第六步,执行脚本 启动镜像 

启动脚本 文件名为mysql8.0.20.sh

sh mysql8.0.20.sh

docker ps -a  查看是否启动成功

2、恢复mysql数据库备份的sql文件

第一步 Navicat 连接mysql

第二步 创建数据库 ,运行sql文件

1至此数据库备份sql ,导入docker容器 mysql.当然若无数据库工具,可直接在docker下命令导入sql文件,恢复数据。如下

2( docker mysql 导入sql文件)

查看MySQL容器名称

docker ps

先上传backup.sql 到docker所在服务器目录中,拷贝sql文件到MySQL容器里

docker cp backup.sql mysql56:/backup.sql

进入MySQL容器查看mysql 是否有backup.sql文件

docker exec -it mysql56 bash
ls

执行sql导入

mysql -uroot -p${you pwd} -D ${target database} < backup.sql

3、进入Docker容器下的MySQL数据库

查询备份数据是否恢复成功

第一步 首先查看Linux环境下所有的docker容器.(目的是找到MySQL容器镜像名称).

docker ps

第二部 进入容器

docker exec -it {image} bash

第三步 输入MySQL账号和密码进行登录.

mysql -u root -p{passwor}

第四步 显示所有的数据库.

show databases;

第五步 使用某一个数据库

use {dbname};

第六步 执行数据库操作

show tables;
select * from xx_table;

至此!!!docker数据库安装、恢复、查询告一段落了;

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;