【问题标题】:Docker Access Denied for user 'root'@'172.28.1.5' (using Password: NO)拒绝用户 'root'@'172.28.1.5' 的 Docker 访问(使用密码:否)
【发布时间】:2018-04-06 19:35:11
【问题描述】:

我正在使用 docker-compose 为 Rails Web 应用程序运行本地测试环境。我在另一台计算机上运行此设置,但在另一台计算机上遇到问题。

这是 docker compose 文件:

version: '2'
services:
 railsdev:
  build: ./
  image: railsdev
  depends_on:
    - db
  ports:
    - 8080:8080
  networks:
    testing_net:
      ipv4_address: 172.28.1.5
  volumes:
      - /c/Users/my_user/Documents/directory:/mount_dir

 db:
   build: ./mysql
   image: mysqldev
   ports:
     - 3306:3306
   environment:
     MYSQL_ROOT_PASSWORD: root
     MYSQL_DATABASE: db
   networks:
     testing_net:
       ipv4_address: 172.28.1.3

networks:
 testing_net:
     ipam:
         driver: default
         config:
           - subnet: 172.28.0.0/16

出于隐私考虑,我更改了其中一些值。

这是我的 mysql DockerFile:

FROM mysql
ENV MYSQL_DATABASE=db
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_HOST=localhost
ENV MYSQL_PORT=3306
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=password
COPY transfer.sql /docker-entrypoint-initdb.d
EXPOSE 3306
CMD ["mysqld"]

最后是我的 rails DockerFile:

FROM ruby:2.3.3
WORKDIR ./
ENV DATABASE_URL=mysql2://172.28.1.3
ENV RAILS_ENV=development
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
RUN bundle install
EXPOSE 8080
CMD ["sh", "-c", "cd mount_dir;bundle exec rake db:migrate;bundle exec rails s -b 0.0.0.0 -p8080"]

通常,我运行 docker-compose up --build 来构建和启动这些容器,并且一切都正确连接。我设置了 Rails DockerFile 来迁移数据库,并且卷安装正确。但是,我收到因 'root'@'172.28.1.5' 错误而拒绝访问。通常这意味着 root 密码不正确,但我已经验证它是正确的。有什么想法吗?

【问题讨论】:

    标签: mysql ruby-on-rails docker docker-compose


    【解决方案1】:

    可能是 mysql 用户 - root 只允许 127.0.0.1 - 而您没有为 172.28.1.5 创建 root。

    【讨论】:

      猜你喜欢
      • 2016-12-27
      • 2016-12-27
      • 2012-06-17
      • 1970-01-01
      • 2014-06-06
      • 2017-12-20
      相关资源
      最近更新 更多