Python DB-соединение через строку - PullRequest
0 голосов
/ 03 июля 2018

Я ищу в Интернете около часа или около того, но не могу найти решение для моей проблемы:

Я пытаюсь установить соединение с базой данных. Если я открываю соединение, как это все работает нормально:

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)

ErrorMessage:

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 голосов
/ 03 июля 2018

Вы не можете передать строку для нескольких таких аргументов, вам нужно было бы назначить каждый аргумент его собственной переменной, как эта;

host = '127.0.0.1'
user = 'python'
db = 'test'
db_connect = pymysql.connect(host, user, db)
0 голосов
/ 03 июля 2018

Вы передаете одну строку в качестве параметра функции pymysql.connect (), но она ожидает как минимум 3 параметра: host, user, db.

Таким образом, строка db_file загружается в качестве первого параметра (хоста), в двух других ничего не попадает, генерируя ошибку.

Правильный путь примерно такой:

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

UPDATE:

если вы хотите использовать файл подключения напрямую, попробуйте использовать файлы опций:

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

...