【问题标题】:MySQL connection with Python is not workingMySQL 与 Python 的连接不起作用
【发布时间】:2021-09-18 06:55:15
【问题描述】:

我想通过 Python 连接 MySQL,虽然我使用直接写入用户名、密码等凭据成功连接,但我想让它有点动态。所以我尝试了:

import mysql.connector
import pandas as pd

def connection():
  host=input('Enter host')
  user=input('Enter User Name')
  passwd=int(input('passwd'))
  database=input('database')
  mydb= mysql.connector.connect(host="host", user="user", passwd="passwd", database="database")
return mydb
  connection()   

但是最后还是报错:

InterfaceError: 2003: Can't connect to MySQL server on 'host:3306' (11001 getaddrinfo failed)

请帮帮我。如果您在带来一些动态用户输入凭据的同时有更好的解决方案,我将非常感激。谢谢。

【问题讨论】:

  • 你试过了吗? mydb= mysql.connector.connect(host=host, user=user, passwd=passwd, database=database)

标签: python mysql database-connection


【解决方案1】:

您正在将“主机”之类的搅拌传递给数据库,而不是变量

所以去掉双引号

import mysql.connector
import pandas as pd

def connection():
  host=input('Enter host')
  user=input('Enter User Name')
  passwd=int(input('passwd'))
  database=input('database')
  mydb= mysql.connector.connect(host=host, user=user, passwd=passwd, database=database)
return mydb
  connection()   

【讨论】:

    【解决方案2】:

    在 mysql.connector 的 connect 方法中,当您将值作为字符串传递时,您正在硬编码这些值。

    请改用mysql.connector.connect(host=host, user=user, passwd=passwd, database=database)

    你还把密码解析成一个int,我不认为mysql会喜欢这样,把它当作一个字符串来使用。

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 2017-12-18
      • 2017-05-23
      • 2017-08-12
      • 2020-02-13
      • 2014-11-17
      相关资源
      最近更新 更多