mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111

Posted

技术标签:

【中文标题】mysql.connector.errors.InterfaceError: 2003: Can\'t connect to MySQL server on \'127.0.0.1:3306\' (111 Connection denied)【英文标题】:mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111 Connection refused)mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111 Connection denied) 【发布时间】:2020-10-23 23:36:45 【问题描述】: 我在 django web 应用程序中使用了 mysql 连接器。 我已将应用程序 docker 化,但 mysql 抛出此错误。 我试过重启mysql服务器, 我也使用了 127.0.0.1 而不是 localhost,它仍然会抛出 同样的错误。 我正在尝试在这里运行“docker-compose up”,它带来了这个 错误 mysql.connector.errors.InterfaceError: 2003: 无法连接 到“127.0.0.1:3306”上的 MySQL 服务器(111 连接被拒绝) “docker-compose build”运行正常,但“docker-compose up”和python manage.py runserver”抛出mysql错误

这是我的 utils.py 文件

import mysql.connector
mydb = mysql.connector.connect(
   host="127.0.0.1",
   user="root",
   passwd="aspilos",
   database="aspilos_log"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT PHONE_NUMBER FROM category2")
results = mycursor.fetchall()
for i in zip(*results):
   number = list(i)
   number1 = '+2348076548894'
   print (number)

这是我的 docker-compose.yml 文件

version: '3.4'

services:
 db:
   image: mysql
 ports:
  - '3306:3306'
environment:
   MYSQL_DATABASE: 'app'
   MYSQL_USER: 'root'
   MYSQL_PASSWORD: 'aspilos'
   MYSQL_ROOT_PASSWORD: 'aspilos'
web:
  build: .
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
  - .:/aspilos
  ports:
  - "8000:8000"
  depends_on:
  - db

这是我的 settings.py 文件

DATABASES = 
'default': 
'ENGINE': 'django.db.backends.mysql',
'NAME': 'app',
'USER': 'root',
'PASSWORD': 'aspilos',
'HOST': 'db',
'PORT': '3306',
,


【问题讨论】:

不允许进行场外对话。问题及其答案应该是自包含的。站外链接只能用于增加清晰度,但详细信息应在本网站上。 【参考方案1】:

在您的 utils.py 中,您使用主机作为“127.0.0.1”,将其更改为 db

mydb = mysql.connector.connect(
   host="db",
   user="root",
   passwd="aspilos",
   database="aspilos_log"
)

【讨论】:

它运行了,但我遇到了另一个错误,无法加载缓存_sha2_password 这完全是一个不同的问题。这个是为了解决“无法在 '127.0.0.1:3306'(111 连接被拒绝)上连接到 MySQL 服务器”错误。请针对新错误提出新问题。 谢谢,我都明白了

以上是关于mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111 的主要内容,如果未能解决你的问题,请参考以下文章