mysql.connector.errors.InterfaceError:2003:无法连接到127.0.0.1:3306上的MySQL服务器(111连接被拒绝)

时间:2020-07-03 09:07:12

标签: python mysql django docker docker-compose

  • 我在django网络应用程序中使用了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 个答案:

答案 0 :(得分:1)

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

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