我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

话说,苏南大叔在docker里面成功的配置好了第一个mysql实例。见这里:

苏南大叔:docker的mysql实例,如何数据持久化及修改密码? - docker-mysql
docker的mysql实例,如何数据持久化及修改密码?(图5-1)

那么,下一个问题就来了,如何修改这个mysql实例的root密码?

经典方式

当然,连入到mysql,然后使用命令行修改密码是可以的。这也是本篇内容的唯一答案。请知晓。

set password for 用户名@localhost = password('新密码'); 
set password for root@localhost = password('123'); 

对于连接mysql的办法,你可以使用任何办法,客户端、命令行。或者通过docker exec进入docker,然后再进入mysql。看你喜欢。

修改docker参数

既然以及进步到了docker时代,我们要用docker的办法来解决问题。那么就是修改MYSQL_ROOT_PASSWORD这个参数了。点击保存后,mysql实例重启,验证新密码生效。

但是,实践发现,这样做,是有问题的。原因就是,这样修改后,整个mysql的实例,事实上都被重置了,原来建好的数据库也消失了,这显然不是我们想要的结果。这就涉及到了数据持久化的问题。

我们需要修改『settings=>volumes』里面的路径配置,把docker内部的路径/var/lib/mysql,映射到本地的目录上。这样,相关的数据也就持久化了。

苏南大叔:docker的mysql实例,如何数据持久化及修改密码? - mysql-share-00
docker的mysql实例,如何数据持久化及修改密码?(图5-2)

但是保存后,整个mysql实例都挂了,完全启动不起来,只有个红色的字,一闪而过。好吧,这个时候,就只能求助命令行模式了。

docker start some-mysql

然后得到了详细的报错信息,提示,我们设置的这个目录,docker并没有相关的权限,需要在docker里面进行设置。

苏南大叔:docker的mysql实例,如何数据持久化及修改密码? - mysql-share-03
docker的mysql实例,如何数据持久化及修改密码?(图5-3)

下面是设置的过程截图。

苏南大叔:docker的mysql实例,如何数据持久化及修改密码? - mysql-share-04
docker的mysql实例,如何数据持久化及修改密码?(图5-4)

苏南大叔:docker的mysql实例,如何数据持久化及修改密码? - mysql-share-05
docker的mysql实例,如何数据持久化及修改密码?(图5-5)

保存生效后,再怎么修改配置,数据库也不会丢失了。但是,通过这种修改配置MYSQL_ROOT_PASSWORD的方法,重置mysqlroot密码的办法,也失效了。

总结

大家就还是老老实实的先通过mysql命令行修改密码吧。经典有效!

set password for 用户名@localhost = password('新密码'); 

结语

欢迎关注苏南大叔的更多mysql精彩文章,https://newsn.net/tag/mysql/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   mysql    docker