Windows Docker环境下驯服Docker版MySQL

目录

1、运行一个MySQL实例:

2、切入MySQL Docker命令行:

3、查询并更改密码测略:

(1)、修改加密规则

(2)、修改密码

(3)、刷新

4、使用Windows主机中的工具连接:


前一久在阅读了一些游戏跨平台开发的文章之后,发现使用Docker版的一些工具具有极大的方便性方面的优势,于是依然本着活到老学到老的程序员精神,就开始深入系统的开始学习了一下Docker。

本文算是学习中的点滴总结吧,宽泛复杂的Docker知识我就不科普了,这个已经有很多书籍资料介绍了,其实大概只要撸上两本书,Docker基本也就入门了。当然这需要你深厚的基础知识,我大概是两周时间左右基本连Docker集群都差不多搞明白了。其实这也是现代技术的一个特点,那就是高度“傻瓜化”,学习起来其实非常的快捷。

Ok,言归正传,作为一名开发人员,我想大多数开发人员其实都挺喜欢在Windows环境下写代码的,当然编译和调试可能就需要安装个虚拟机跑起linux来编译和试运行了。而现在有了Docker,尤其是Windows Docker,搭建这样的开发环境已经变得So easy!了,你可以直接到官网下载并安装Docker For Windows版安装即可。默认情况下,Windows Docker其实是运行了一个带有Docker 的轻量级Linux版Hyper-V主机,因此很多Linux版的Docker镜像可以直接pull并run在本地。

一般作为开发,都少不了数据库,所以每次在系统中安装配置数据库都是一件耗时并索然无味的事情。所以我现在都习惯使用Docker版的MySQL,当然按照官方的教程,你要跑起一个MySQL镜像实例都是很容易的。但我在按照教程做了之后发现,我的Windows主机客户端居然连不上MySQL,这让我很错愕,也很有挫折感。后来我才发现原来MySQL的官方镜像是比较新的版本了,其密码加密测量都已经更新了,而老版本的这些MySQL客户端是不支持的。经过一系列折腾之后我终于完全调通了这条通路,现在算是笔记的形式记录下来,供大家参考:

1、运行一个MySQL实例:

在Windows下运行Docker命令,可以使用CMD也可以使用PowerShell,我推荐使用Powershell。在PowerShll中输入如下命令,启动一个MySQL实例:

docker run --name mysql_1 -e MYSQL_ROOT_PASSWORD=999999 -P -d mysql

注意我设置的密码就是简陋的999999,作为开发来说这没有问题,但是对于运维人员来说这可是麻烦。密码你也可以自行设置。当然作为开发的我,一般都是用最简化的密码,偷懒!

运行后输入:

docker ps

查看mysql暴露出来的端口:

在我的系统里,3306端口被映射到了主机32785,此时你可以使用客户端工具测试连接:

点击后会提示如下错误:

OK,不要着急,这就是本文要跟你一起搞定的问题,请继续往下看。

2、切入MySQL Docker命令行:

上面的问题其实就是因为刚才说的密码加密策略的问题,so,我们需要登入MySQL的docker容器内来修改,运行下面的命令:

Docker exec -it mysql_1 bash

然后看到命令提示符就是linux化的了:

3、查询并更改密码测略:

紧接着,我们在容器内的#提示符后输入如下命令:

Mysql -uroot -p999999

进入mysql命令环境如下:

接着按顺序输入下面的命令:

use mysql;
select user,plugin from user where user=’root’;

可以看到加密策略是比较新的sha2算法,所以导致好多客户端不支持,从而无法连接。接着我们运行下面的几条语句:

(1)、修改加密规则

ALTER USER ‘root’@’%’ IDENTIFIED BY ‘999999’ PASSWORD EXPIRE NEVER;

(2)、修改密码

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘999999’;

(3)、刷新

FLUSH PRIVILEGES;

运行如下:

以上命令在复制粘贴到PowerShell中的时候,单引号会莫名其妙丢失,请注意自己补充进去。

4、使用Windows主机中的工具连接:

前面的操作都做完后,就可以重新使用客户段工具连接测试了,效果如下:

这样我们就可以在Windows中开发任意使用MySQL了。并且你可以重复运行这个过程搭建多个MySQL实例。当然随着后续版本的客户端工具更新,我估计这个问题很快就会被修正的。那样我们使用MySQL就更加方便了。

最后一个问题就是数据存储路径的问题,等我调试通后会继续分享给大家。感谢您的关注!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GamebabyRockSun_QQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值