在python中使用pymysql连接数据库

Posted

技术标签:

【中文标题】在python中使用pymysql连接数据库【英文标题】:connecting database using pymysql in python 【发布时间】:2018-10-25 02:49:30 【问题描述】:

我仍在学习如何使用 python 库处理数据库

执行以下代码时发生操作错误 screenshot

代码sn-p:

import pymysql
db1=pymysql.connect(host="127.0.0.1",user="root",password='root',port=3306,db='world')

a=db1.cursor()

sql='SELECT * from CITY'
print(a.execute(sql))

错误:

(1045, "Access denied for user 'root'@'localhost' (using password: NO)")

这可能是什么原因?

【问题讨论】:

【参考方案1】:

执行以下代码截图时发生操作错误。这可能是什么原因?

有问题的错误是:

(1045, "Access denied for user 'root'@'localhost' (using password: NO)")

它表明您正在尝试不使用密码进行连接,而实际上您在连接参数中提供了密码。这曾经是 pymysql 的已知错误,因此答案可能取决于版本。如果您可以正常使用mysql -u root -proot world(来自您的连接参数的数据库、密码和用户)连接到 mysql,这意味着您的数据库确实具有正确的凭据并且需要密码,而连接方法没有发送密码,很可能是由于旧版本。另一方面,如果您无法连接,则很可能您的 root 密码为空,您需要正确设置它。还有一个选项是您在访问 root 用户的数据库“世界”时遇到问题。

【讨论】:

以上是关于在python中使用pymysql连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中使用 PyMysql 连接 MariaDB 时出现问题

Python连接MySQL数据库之pymysql模块使用

Python连接MySQL数据库之pymysql模块使用

Python连接MySQL数据库之pymysql模块使用

Python mysql(使用pymysql)自动重新连接

Python连接MySQL数据库之pymysql模块使用