Python throws 'ProgrammingError: 1045' when data is passed from YAML to connect with MYSQL database

Python throws 'ProgrammingError: 1045' when data is passed from YAML to connect with MYSQL database

我正在 Python 中与 mysql.connector 创建一个连接对象。如果我直接在函数中传递主机、用户、密码和数据库的参数,它工作正常,但如果我在从 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 文件内容的屏幕截图

我打印了从 YAML 文件创建的字典对象的内容,它也工作正常,但在创建连接时它仍然不起作用。

我可以在您的 yaml 文件的密码部分看到一个额外的 ,。 删除它。

因此最终文件如下所示。

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