在使用Python的pymysql库连接本地MySQL数据库时,有时会遇到“pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinError 10061] 由于计算机积极拒绝,无法连接。)””的错误。这个错误通常发生在尝试建立数据库连接的时候,意味着Python客户端无法与运行在localhost上的MySQL服务器建立连接。
以下是一段可能导致上述错误的Python代码示例:
import pymysql
try:
# 尝试连接到MySQL数据库
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
database='mydatabase'
)
except pymysql.err.OperationalError as e:
print(f"连接数据库时出错: {e}")
如果MySQL服务未运行或连接参数错误,执行上述代码将会触发OperationalError。
首先,确保MySQL服务已经启动并且监听在正确的端口上。然后,检查并确保连接参数(主机名、端口、用户名、密码等)是正确的。以下是一个修正后的代码示例:
import pymysql
try:
# 尝试连接到MySQL数据库,确保所有参数正确,并且MySQL服务已启动
connection = pymysql.connect(
host='127.0.0.1', # 或者使用localhost,确保与MySQL配置一致
port=3306, # 确保端口号正确,默认为3306
user='root', # 使用正确的用户名
password='correct_password', # 使用正确的密码
database='mydatabase' # 使用存在的数据库名
)
print("数据库连接成功!")
except pymysql.err.OperationalError as e:
print(f"连接数据库时出错: {e}")
finally:
if connection:
connection.close() # 确保最后关闭连接
通过遵循上述步骤和注意事项,你应该能够解决“pymysql.err.OperationalError:(2003 "Can’t connect to MySQL server on ‘localhost’)"的错误,并成功连接到MySQL数据库。