错误记录:Can't connect to MySQL server on xxx

  1. 错误分析
  2. 解决方法

由于之前Django项目的mysql的3306端口直接映射到宿主机的3306端口
最近安装的其他服务, 发现3306端口冲突, 就把原本Django项目的mysql服务的端口修改, 并且Django的配置文件后也跟着修改了
但是启动项目后发现报错Can't connect to MySQL server xxx

错误分析

MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'mysql' (115)")

这个说明, MySQLdb仍然可以找到mysql这个容器, 但是无法连接, 所以应该是端口问题
为此检查docker-compose.yml, 发现之前是用ports绑定的, 不知道为啥不能被访问

解决方法

docker-compose.ymlports改为expose, expose中的端口, 可以让links的服务访问到

比如:

services:
  backend:
    links:
      - mysql

  mysql:
    expose:
      - 3306 # 暴露给backend服务

作者: 忞翛

出处: https://www.lczmx.top/错误记录/33a335997675/

版权: 本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

在线工具