2025年使用pymysql连接数据库(pymysql连接数据库被拒绝)

使用pymysql连接数据库(pymysql连接数据库被拒绝)目录 一 问题起源 二 问题的解决 三 总结 nbsp nbsp nbsp nbsp nbsp 最近在做数据分析 在本机调试的时候 使用 pymysql 无法连接 mysql 返回提示 nbsp MySQL DB Connect Error 2003 Can t connect to MySQL server on 192 168 2 3 WinError 10061 由于目标计算机积极拒绝 无法连接 但是用 SQLyog 之类的工具可以连接 这是什么情况呢




目录

一、问题起源

二、问题的解决

三、总结



最近在做数据分析,在本机调试的时候,使用pymysql无法连接mysql,返回提示 MySQL DB Connect Error :2003: Can't connect to MySQL server on '192.168.2.3' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)但是用SQLyog之类的工具可以连接,这是什么情况呢?

项目中定义了一个连接mysql的类,主要实现方法pymysql.connect(host=host, user=user, passwd=passwd, db=db, port=3306, charset='utf8')

        

首先尝试着授权:

MYSql代码

注意授权后必须FLUSH PRIVILEGES否则无法立即生效。

然而一波未平一波又起,执行的时候返回了错误

本质上的原因是MYSQL的新版本不支持这样授权了

修正后的语句:分开三次执行

操作了一番后,结果还是一样无法连接。

转念一想是不是pymysql的问题呢 ?于是跟踪进入pymysql的connections.py单元。

python计算机积极拒绝怎么解决呢_数据库

发现问题所在,明明我为了安全,把mysql端口号改为了别的, 但是连接时候真正跟踪到的还是那个默认的3306

python计算机积极拒绝怎么解决呢_mysql_02

往上级自己封装的单元一查,原来port不小心固定写了3306,困扰了几天的事情原来是个大乌龙。

        Mysql分配权限各个版本的语句不同,需要根据不同的mysql版本采用不同的分配权限的方式。大家根据真实的使用场景赋值不同的权限,root账户尽量少对外使用。需要提供给外部使用的可以重新create user创建个新用户专门对外。端口也建议更换一个,不要用3306,同时记得以前固定用3306的地方一定要做变量引入,不然就会遇到像我遇到的问题一样。查到最后发现是端口的问题

编程小号
上一篇 2026-03-03 22:40
下一篇 2026-03-03 22:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/49678.html