MySQL 与 Python 的连接无效

MySQL connection with Python is not working

我想通过 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()   

但是最后报错:

接口错误:2003:无法连接到 'host:3306' 上的 MySQL 服务器(11001 getaddrinfo 失败)

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

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

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

您还将密码解析为 int,我认为 mysql 不会喜欢那样,只需将其用作字符串即可。

您正在将“host”之类的字符串传递给数据库,而不是变量

所以去掉双引号,比如

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()