代码之家  ›  专栏  ›  技术社区  ›  pkaramol

无法从Docker容器内连接到MySQL

  •  1
  • pkaramol  · 技术社区  · 7 年前

    构建基于MySQL的图像,如下所示( Dockerfile ):

    FROM mysql:5.7
    
    COPY somescripts* /docker-entrypoint-initdb.d/
    

    然后执行:

    docker run --env="MYSQL_ROOT_PASSWORD=mypassword" -it theimagejustbuilt bash
    

    但是…

    root@73857bf5744e:/# mysql
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   SushilG    7 年前

    解决方案1。 指定“127.0.0.1”作为主机而不是本地主机,即mysql-h 127.0.0.1-u root而不是mysql。注意,如果省略主机(mysql-u root),mysql客户机将隐式使用localhost。

    解决方案2。 在/etc/mysql/my.cnf中,您应该在文件顶部附近看到:

    [client]
    port          = 3306
    socket        = /var/run/mysqld/mysqld.sock
    Change socket to the location of your MemSQL socket file. By default, this is /var/lib/memsql/data/memsql.sock.
    
        2
  •  0
  •   pkaramol    7 年前

    结果发现我无意中通过以下命令覆盖了入口点:

    docker run --env="MYSQL_ROOT_PASSWORD=mypassword" -it theimagejustbuilt bash
    

    这个 bash 结尾处不需要关键字,因为它重写默认入口点和到的连接 mysql 因此无法提供服务。