python - 当从 YAML 传递数据以连接 MYSQL 数据库时,Python 抛出“ProgrammingError: 1045”
问题描述
我正在用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 文件内容的屏幕截图
我打印了从 YAML 文件创建的字典对象的内容,它也可以正常工作,但在创建连接时仍然无法正常工作。
解决方案
,
我可以在密码部分的 yaml 文件中看到一个附加信息。去掉它。
所以最终文件如下所示。
host: 127.0.0.1
user: test
password: Orion@123
database: socketTestDB
推荐阅读
- vue.js - 如何使用 v-for 使用 parentid 和 order 创建树结构
- laravel - 如何乘以结果集中的行数测试分页
- php - Symfony 2.7由于null而拒绝插入,而值不为null
- javascript - 如何根据嵌套数组中的值检索正确的父对象
- r - 使用 ggplotly 转换 alpha 美学
- ethereum - 如何获取交易的所有事件(不是合约)?
- asp.net-core - 我想使用两个 DbContext asp.net 核心
- python - 如何将迭代值分配给python中的多个全局变量
- sql - SQL Server 空间连接 - 计算多边形中的点
- r - 从R中的数组计算线之间的最大体积