拒绝docker访问的MySQL

拒绝docker访问的MySQL,mysql,database,docker,Mysql,Database,Docker,我需要在docker上使用MySQL。我遵循的步骤是: 安装码头工人 拉式MySQL docker映像 运行MySQL的docker容器 已安装MySQL客户端 但是当我运行这个 sudo docker exec -it mysql8 MySQL -uroot -p 它要求输入密码,我输入密码,它给出以下信息: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password : Yes) 我该如何

我需要在docker上使用MySQL。我遵循的步骤是:

  • 安装码头工人
  • 拉式MySQL docker映像
  • 运行MySQL的docker容器
  • 已安装MySQL客户端
  • 但是当我运行这个

    sudo docker exec -it mysql8 MySQL -uroot -p
    
    
    它要求输入密码,我输入密码,它给出以下信息:

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password : Yes)
    
    
    我该如何解决这个问题?我遗漏了什么? 我在这里遵循了教程:

    您所阅读的文章已导出,并且正在运行容器,在容器中工作时,更改密码不是正确的方式。对于OfficeImage,您可以使用环境变量进行设置

    使用下面的命令,以及您可以在上找到的更多详细信息

    然后尝试连接

    docker exec -it some-mysql bash -c "mysql -u root -pmypass"
    

    您所关注的文章已导出,并且正在运行容器,在容器中工作时,更改密码不是正确的方法。对于OfficeImage,您可以使用环境变量进行设置

    使用下面的命令,以及您可以在上找到的更多详细信息

    然后尝试连接

    docker exec -it some-mysql bash -c "mysql -u root -pmypass"
    
    找到了答案。 不得不跑

    docker logs <container_name>
    
    找到了答案。 不得不跑

    docker logs <container_name>
    

    为了为mysql创建docker容器,可以使用下面给出的命令

    docker run -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=user -e MYSQL_PASSWORD=password -d -p 3308:3306 -v $HOME/docker/volumes/mysql:/var/lib/mysql mysql
    
    您还可以在这个给定的命令中为mysql设置更多的环境变量

    为了访问此容器中的mysql,您有两种简单的方法:

  • 使用docker exec-it容器名称。然后在容器中编写mysql-u root-p,或者根据您的意愿随命令一起编写

  • 使用mysql客户端并从本地本身进行访问


  • 为了为mysql创建docker容器,可以使用下面给出的命令

    docker run -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=user -e MYSQL_PASSWORD=password -d -p 3308:3306 -v $HOME/docker/volumes/mysql:/var/lib/mysql mysql
    
    您还可以在这个给定的命令中为mysql设置更多的环境变量

    为了访问此容器中的mysql,您有两种简单的方法:

  • 使用docker exec-it容器名称。然后在容器中编写mysql-u root-p,或者根据您的意愿随命令一起编写

  • 使用mysql客户端并从本地本身进行访问


  • 有其他方法可以避免这种情况,但你可以调查问题,这是关于泄露密码的问题,这是关于无法建立连接的问题,我可以相应地更新问题,如果这是你方唯一的反对意见,但在要求澄清之前投反对票不是解决@RonIf OP与DB连接问题的方法,这意味着他是一个学习者,所以这对他来说是最不安全的解决方案,但没有密码是非常危险的。当然,如果OP和你一样,我的答案会有所不同:)另外,对于docker,如果有些人可以访问主机操作系统,他可以访问docker@Ronvanderheijdenth内的任何东西,有其他方法可以避免这种情况,但你可以调查问题,这是关于密码泄露的问题,是关于无法建立连接的问题,我可以相应地更新问题,如果这是你方唯一的反对意见,但在要求澄清之前的否决票不是解决@RonIf OP与DB连接有问题的方式,这意味着他是学习者,因此这是他最不安全的解决方案,但没有密码是非常危险的。当然,如果OP和你一样,我的答案会有所不同:)同样,对于docker,如果有人可以访问主机操作系统,他可以访问docker@RonvanderHeijden内的任何东西