window dockor mysql_Window10环境下在Docker中导入mysql数据

环境

docker 版本: 18.09.2

windows 版本:win10,用HyperV

命令行工具:git-bash git version 2.21.0.windows.1

1.在当前宿主机的目录目录下创建三个文件,用来与 docker 中的 mysql 镜像进行挂载

$ mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf

2.初始化mysql密码并进行容器挂载,指定的容器名字若与已有的容器有冲突,可先重新命名或将有冲突的容器删除

$ docker run -p 3306:3306 --name mymysql -v "/$PWD/conf":/etc/mysql/conf.d -v "/$PWD/logs":/logs -v "/$PWD/data":/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d

注意window10环境进行挂载,对宿主机的路径要进行转换,加上 "" 是必须的,以下一篇文章提供了不能挂载文件夹进container的解决方法,可参考

https://segmentfault.com/a/1190000017302478

参数说明:

· -p:容器的 3306 端口映射到主机的 3306 端口。

· $PWD:当前的目录路径

· -v $PWD/conf:/etc/mysql/conf.d:映射配置文件

· -v $PWD/logs:/logs: 映射日志文件

· -v $PWD/data:/var/lib/mysql:映射数据目录

· -e MYSQL_PASSWORD="123456":初始化 root 用户的密码

· -d: 后台运行容器,并返回容器ID

3.使用 cp 命令,将宿主机test_db目录复制到 容器 mymysql /opt 目录下,注意宿主机的目录要加双引号,不然会被认为是另一个容器

$ docker cp "C:\Users\CZY\mysql\data\test_db" mymysql:/opt

4.第二步执行后已后台运行容器,使用 exec 命令进入容器并开启一个shell会话(也可以使用attach),注意整个命令前面要加上 winpty(win10中才加)

$ winpty docker exec -it mymysql bash

root@398e651dd483:/#

参数说明:

· -i :以交互模式运行容器,通常与 -t 同时使用

· -t :为容器重新分配一个伪输入终端,通常与 -i 同时使用

· bash :在容器内执行打开一个shell会话,执行bash命令

5. cd 到含有导入文件的目录中,在进行数据导入。若不先切换补录,则 < 后边的数据要使用绝对路径表示,且test_db中的 dump 文件也要使用路径表示,不然会提示找不到文件。

另外一种方法是切换到目录后,进入mysql,然后使用 source 命令导入,但我没能操作成功,有能操作成功的请告诉我。

root@398e651dd483:/# cd /opt/test_db

root@398e651dd483:/opt/test_db# mysql -uroot -p < employees.sql

6.在 shell 中进入 mysql 查看数据是否已正常导入,使用前面已经初始化的密码

$ winpty docker exec -it mymysql bash

root@398e651dd483:/# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 2Server version:5.7.26MySQL Community Server (GPL)

Copyright (c)2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.

mysql>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值