通过字符串的Python DB连接

时间:2018-07-03 11:44:04

标签: python database-connection pymysql

我正在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)')

我希望任何人都可以通过告诉我如何通过字符串(或其他可预定义的内容)建立数据库连接来帮助我

2 个答案:

答案 0 :(得分:0)

您正在将一个字符串作为参数传递给函数pymysql.connect(),但它至少需要3个参数:主机,用户,数据库。

因此,将字符串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

答案 1 :(得分:0)

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

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