Python выдает «ProgrammingError: 1045», когда данные передаются из YAML для соединения с базой данных MYSQL - PullRequest
0 голосов
/ 06 января 2020

Я создаю объект соединения с mysql.connector в Python. Если я передаю параметры для хоста, пользователя, пароля и базы данных непосредственно в функцию, она работает нормально, но если я передаю информацию после извлечения ее из файла YAML, она выдает следующую ошибку: mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)

import mysql.connector
import yaml

config_data = yaml.load(open("config.yaml"), Loader=yaml.FullLoader)

def connection_1():
    conn = mysql.connector.connect(
        host="127.0.0.1",
        user="test",
        passwd="Orion@123",
        database="socketTestDB"
    )
    c = conn.cursor()
    return c, conn

def connection_2():
    conn = mysql.connector.connect(
        host=config_data["host"],
        user=config_data["user"],
        passwd=config_data["password"],
        database=config_data["database"]
    )
    c = conn.cursor()
    return c, conn

print(connection_1()) # THIS ONE WORKS FINE
print(connection_2()) # THIS ONE DOES NOT

Вот снимок экрана с содержимым файла YAML

enter image description here

Я напечатал содержимое объекта словаря, созданного из файла YAML, и это также хорошо работает но все равно не работает при создании соединения.

1 Ответ

2 голосов
/ 06 января 2020

Я вижу дополнительные , в вашем файле yaml в разделе паролей. удалите его.

Таким образом, окончательный файл выглядит следующим образом.

host: 127.0.0.1
user: test
password: Orion@123
database: socketTestDB
...