Docker - Docker启动的MySql修改密码

这篇具有很好参考价值的文章主要介绍了Docker - Docker启动的MySql修改密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于上篇文章《Docker - Docker安装MySql并启动》,在Docker中启动了mysql服务,但是密码设置成了123456,想起来学生时代数据库被盗走,然后邮箱收到被勒索BTC的场景还历历在目😭,密码不能再设置这么简单了啊!

docker desktop 启动mysql 设置用户名和密码,软件工具,docker,mysql,adb,经验分享,笔记,容器,数据库

前置操作

使用以下命令创建了一个MySQL容器,并设置了MySQL的root密码为123456

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

错误的操作

因为自己实践了错误操作,所以就把错误的操作记录一下,防止再走弯路

  1. 登录mysql
docker exec -it mysql-container mysql -u root -p
  1. 修改用户对应的密码
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
  1. 修改完密码后,退出MySQL命令行并断开连接
exit
  1. 重新连接到MySQL容器以验证新密码是否有效
docker exec -it mysql mysql -u root -p

本来以为这样操作后,密码就成功修改了,但是发现输入新密码不起作用,还是需要输入老密码才能正确登录,还是没有修改成功!
docker desktop 启动mysql 设置用户名和密码,软件工具,docker,mysql,adb,经验分享,笔记,容器,数据库

于是在考虑会不会是mysql的docker服务没有删除的原因导致,于是有了下述操作

  1. 停止正在运行的MySQL容器
docker stop <container_name_or_id>
  1. 删除已停止的MySQL容器
docker rm <container_name_or_id>
  1. 创建一个新的MySQL容器,并设置一个新的root密码。如下所示:
docker run -p 3306:3306 --name mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=dewfwe -d mysql:5.7

结果执行登录mysql的命令时,还是需要原来的密码才可以登录,看来还是操作有误

docker desktop 启动mysql 设置用户名和密码,软件工具,docker,mysql,adb,经验分享,笔记,容器,数据库


上述错误操作不生效原因

询问GPT的回答:Docker容器的数据卷(volumes)通常用于持久化存储容器内的数据,包括配置文件和数据库文件等。在上述的情况中,执行的操作是修改MySQL了的root密码,但密码没有被正确更新,这说明有极大的可能是与Docker容器的数据卷有关,即可能是数据库密码被持久化存储了

确实应该是gpt阐述的原因

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

看上面执行的命令操作,我将容器内的配置文件、日志和数据挂载到主机的目录。这就意味着MySQL的数据和配置都存储在这些挂载的主机目录中,而不是容器内部。

即使我执行了停止并删除容器的操作,但是对于docker来说,这些挂载的目录并没有被删除,因此MySQL的数据和配置文件仍然存在于主机上。我再怎么去修改密码,也是徒劳无功的。

所以缺少的一步操作是:需要删除之前挂载的数据目录


正确操作

前置操作是一致的

  • 停止并删除之前的MySQL容器
    • 使用docker stop mysqldocker rm mysql来停止和删除容器
  • 删除之前挂载的数据目录
    • 使用sudo rm -rf /docker/mysql/data来删除之前的数据目录。
  • 使用新的密码创建一个新的MySQL容器:
docker run -p 3306:3306 --name mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=cwfwef -d mysql:5.7

按照上述操作后,再去重新连接到MySQL容器用新密码登录,即可成功登录

docker exec -it mysql mysql -u root -p

出现如下图,就说明使用新密码登录成功了
docker desktop 启动mysql 设置用户名和密码,软件工具,docker,mysql,adb,经验分享,笔记,容器,数据库

妈妈再也不用担心我被勒索BTC了😝!文章来源地址https://www.toymoban.com/news/detail-763810.html

到了这里,关于Docker - Docker启动的MySql修改密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker desktop安装mysql

    首先本地已经有 docker 环境存在,然后可以拉取 MySQL 镜像。 相关 mysql 仓库地址: https://hub.docker.com/_/mysql/ 等待镜像完成之后就可以启动 mysql 了,注意需要配置一些启动参数 MySQL 提供了很多环境变量参数,可以自定义 MySQL 环境,常用的如下: 参考地址:https://dev.mysql.com/do

    2024年02月02日
    浏览(41)
  • 在win10上安装Docker desktop,并在docker中安装mysql

    操作步骤: 安装docker 去 官网 下载安装软件; 选择windows 2. 依次点击安装; 安装完成后无需登录,直接启动即可; 如果有提示需要更新wsl,执行以下命令更新: wsl --update wsl --status 查看状态 验证一下 适用命令: docker run hello-world 设置国内镜像 docker安装mysql 拉取mysql镜像 do

    2024年02月13日
    浏览(40)
  • windows下基于docker-desktop 安装 mysql 5.7

    docker-desktop v4.27.1 Windows 11 22H2 docker-desktop 需要wsl的支持,一般win11新机子都默认开启了,安装docker-desktop 一路next即可.win10老版本需要自行安装+开启wsl.一个小建议是,如果你的win10安装wsl时各种错误无法解决,建议升级到win11大概率解决,本人亲身经历. 下列命令 基于 windwos power shel

    2024年04月23日
    浏览(32)
  • Docker Desktop 部署 mysql-exporter 监控(Prometheus,mysql-exporter)时遇到的一些问题

    本次使用 Prometheus 系列的监控组件,只部署了 mysql 相关组件: mysql , mysqld-exporter , Prometheus 。 Docker 使用的是 Docker Desktop。 最开始部署时, docker-compose.yml 文件为: docker 部署 mysql 在这里就不细说,这里的配置只是我随便写的,只需要保证 mysql 能正常启动就行。 注意 :这

    2024年02月03日
    浏览(48)
  • docker重置mysql密码

    1、可以删掉容器重来一 一次(费时费力) 2、重置docker内的mysql密码

    2024年02月15日
    浏览(36)
  • docker的mysql 默认密码

    在使用Docker快速部署MySQL容器时,很多人都会遇到一个常见问题:MySQL容器默认密码是多少?实际上,当我们启动MySQL容器时,并没有为root用户设置一个固定的默认密码。在Docker启动MySQL容器后,首次运行时会生成一个随机密码,并输出到容器日志中。接下来,我们就来讨论如

    2024年04月13日
    浏览(32)
  • MySQL mysql-8.0.35-winx64 下载/配置/初始化/安装/打开/登陆/修改密码/退出/卸载/设置远程连接

    #---------------------------------------------------------------------------------------------------------------------------- [mysqld] #设置3306端口 port=3306 #设置mysql的安装目录 basedir=D:mysql-8.0.35-winx64database #设置mysql数据库的数据的存放目录 datadir=D:mysql-8.0.35-winx64databasedata #允许最大连接数 max_connections

    2024年02月04日
    浏览(50)
  • Docker登录MySQL,密码正确却提示密码错误

     当我输入了正确的MySQL密码的时候确提示我密码错误: 这是由于之前的挂载点的数据没有删除干净,删除掉宿主机下的mysql_master文件即可

    2024年01月22日
    浏览(71)
  • Docker - Docker安装MySql并启动

    因为项目需要数据库存储数据,但是远程服务器上的mysql已经是上一波老铁安装部署的了,我不知道账户和密码,但是又需要快速部署一下mysql服务,这个时候便是docker发挥作用的关键时刻了! docker安装不是我们的重点,这里就简单带过一下,如有其他意外问题可私信或直接

    2024年02月10日
    浏览(50)
  • 忘记Docker容器中的Mysql密码

    docker ps docker exec -it ae235c4ae537/bin/bash vi /etc/mysql/conf.d/docker.cnf 如果遇到异常如下: 安装vim: 系统异常: E: Unable to locate package vim 由于下载为海外地址安装失败:

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包