Docker Access拒绝用户&root;' @' 172.28.1.5' (使用密码:否)

时间:2018-04-06 19:35:12

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

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

这是docker撰写文件:

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密码不正确,但我已经验证它是正确的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

可能是mysql用户 - root只允许127.0.0.1 - 并且你没有为172.28.1.5创建root。