Python 通过字符串的数据库连接

Python DB-Connection via string

我在 Internet 上搜索了大约一个小时,但找不到解决我的问题的方法:

我正在尝试建立数据库连接。 如果我这样打开连接,一切正常:

db = pymysql.connect(host='127.0.0.1', user='python', db='test')

但是如果我想通过字符串建立连接,我会得到一个错误:

db_file = str("host='127.0.0.1', user='python', db='test'")
db = pymysql.connect(db_file)

错误信息:

pymysql.err.OperationalError: (2003, 'Can\'t connect to MySQL server on "host=\'127.0.0.1\', user=\'python\', db=\'test\'" ([Errno -2] Name or service not known)')

我希望有人能告诉我如何通过字符串(或其他可预定义的东西)设置数据库连接来帮助我

您正在将单个字符串作为参数传递给函数 pymysql.connect(),但它至少需要 3 个参数:host、user、db。

所以字符串 db_file 被加载为第一个参数(主机),其他两个没有任何内容,从而产生错误。

正确的做法是这样的:

host = '127.0.0.1',
user ='python' 
db ='test'
db_conn = pymysql.connect(host, user, db)

更新:

如果您想直接使用连接文件,请尝试使用选项文件:

https://dev.mysql.com/doc/connector-python/en/connector-python-option-files.html

你不能像这样为多个参数传递一个字符串,你必须像这样将每个参数分配给它自己的变量;

host = '127.0.0.1'
user = 'python'
db = 'test'
db_connect = pymysql.connect(host, user, db)