sql - 无法使用 .my.cnf 文件连接到数据库 pymysql

标签 sql database python-3.x my.cnf pymysql

这个函数应该连接到数据库,因为我使用了一个异常,当发现不正确的输入时,我会得到我自己创建的消息。但是当我删除 try 和 except 时,我得到:“拒绝访问/'user/'@'/'localhost'(使用密码:否)。

它似乎没有读取我的密码我不知道为什么会感谢您的帮助。没有此文件,与数据库的连接工作正常,没有任何错误。

    try:
        self.conn = pymysql.connect(read_default_file="~/my.cnf")
        self.curr = self.conn.cursor()

    except pymysql.err.OperationalError : 
        sys.exit("Invalid Input: Wrong username/database or password found, please try again")

在.my.cnf文件中找到的信息是:

[客户]

主机='本地主机'

端口=3306

用户 = 我的用户名

密码 = "我的密码"

最佳答案

你用过:

pymysql.connect(read_default_file="~/my.cnf")

你应该用过:

pymysql.connect(read_default_file='~/.my.cnf')
-------------------------------------^

请注意文件名中缺少的点。您只是加载了一个不同的或不存在的文件。

~ 正在展开,如下所示:

https://github.com/PyMySQL/PyMySQL/blob/18b62f6e1d6f65b403c9e8b650f4c3bb27b665e7/pymysql/connections.py#L619

我还可以确认 .my.cnf 文件中不需要引号或空格:

echo -e "[client]\nuser=root\npassword=defaultrootpwd" > ~/.my.cnf

关于sql - 无法使用 .my.cnf 文件连接到数据库 pymysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203902/

相关文章:

database - 如何为数据库设计自动化框架

android - 如何删除Android应用程序中的数据库

python - 我怎样才能让用户输入不同的答案但显示相同的结果?

python - 嵌套列表转换为python中的一个列表

php - sql case 查询时参数编号无效错误

php - 当我尝试在表中添加检查约束时,没有任何变化

SQL View如何分组和求和

mysql - 从子查询 SQL 选择最大数据,但它显示子查询的所有结果

sql - 如何解释结果?

python-3.x - 如何根据 Excel Dataframe 中的内容突出显示行?