我正在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)')
我希望任何人都可以通过告诉我如何通过字符串(或其他可预定义的内容)建立数据库连接来帮助我
答案 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)