【问题标题】:Not able to connect MYSQL from docker无法从 docker 连接 MYSQL
【发布时间】:2019-09-18 03:33:50
【问题描述】:

我已经下载了一个 MYSQL docker 映像,并尝试使用 Docker 检查的 IP 地址部分中给出的主机(比如 172.17.0.2)、端口 3306、用户名 :root 和数据库连接到 MYSQL:@987654324 @。

我正在尝试使用以下数据库连接运行 R 脚本:

con <- dbConnect(RMySQL::MySQL(), 
       dbname = “mysql”, 
       host=“172.17.0.2”, 
       port=3306, 
       username = “root”, 
       password = )

但我收到一条错误消息,指出主机不存在。我什至尝试使用各种主机选项,例如“localhost”。但我仍然无法连接,并显示错误消息:

Error in .local(drv, …) :
Failed to connect to database: Error: Can’t connect to MySQL server on ‘172.17.0.2’ (0)
Calls: dbConnect -> dbConnect -> .local -> .Call

请帮忙。

【问题讨论】:

    标签: mysql sql r docker


    【解决方案1】:

    尝试使用localhost 连接意味着,R 的 localhost 不包含 DB。

    您可以直接与容器 IP 连接,但在 Docker 的情况下,如果您重新启动数据库,则 IP 会经常更改,容器的 IP 将被更改。

    最好使用 Docker-compose,它将两个容器保持在同一个网络中,并且 R 容器将能够使用容器的名称进行连接。

    另外,验证 MySQL 容器的日志是否已启动或者您可以从 MySQL 客户端连接?

    你可以试试

    version: '3.3'
    
    services:
       db:
         image: mysql:5.7
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: root_password
           MYSQL_DATABASE: my_db
           MYSQL_USER: my_user
           MYSQL_PASSWORD: my_pass
    
       web:
         depends_on:
           - db
         image: r-base:latest
         ports:
           - "8000:80"
         restart: always
    volumes:
        db_data: {}
    

    因此,在这种情况下,您的 MySQL 连接字符串将是

    dbname = “mydb”, host=“db”, port=3306, username = “root”, password =root_password
    
    

    或者另一种选择是将主机 IP 传递给 R 容器,而不是使用容器 IP。

    docker run -it --add-host=db:192.168.x.x r_base_image
    

    所以现在主机将是

    dbname = “mydb”, host=“db”
    

    【讨论】:

      【解决方案2】:

      你需要去Mysql配置文件(my.cnf)绑定IP地址。 类似:

      [mysqld]
      
      bind-address    = xx.xx.xx.xx
      

      如果您不知道 ip,请使用 0.0.0.0 这意味着您的主机 mysql 可以用于所有 IP 地址。

      【讨论】:

        猜你喜欢
        • 2019-07-22
        • 2018-10-10
        • 2018-11-09
        • 2019-09-28
        • 1970-01-01
        • 2018-10-02
        • 2021-06-16
        • 2015-04-30
        相关资源
        最近更新 更多