目录
一、问题起源
二、问题的解决
三、总结
最近在做数据分析,在本机调试的时候,使用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的新版本不支持这样授权了
修正后的语句:分开三次执行
操作了一番后,结果还是一样无法连接。
发现问题所在,明明我为了安全,把mysql端口号改为了别的, 但是连接时候真正跟踪到的还是那个默认的3306
往上级自己封装的单元一查,原来port不小心固定写了3306,困扰了几天的事情原来是个大乌龙。
Mysql分配权限各个版本的语句不同,需要根据不同的mysql版本采用不同的分配权限的方式。大家根据真实的使用场景赋值不同的权限,root账户尽量少对外使用。需要提供给外部使用的可以重新create user创建个新用户专门对外。端口也建议更换一个,不要用3306,同时记得以前固定用3306的地方一定要做变量引入,不然就会遇到像我遇到的问题一样。查到最后发现是端口的问题
到此这篇使用pymysql连接数据库(pymysql连接数据库被拒绝)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/30977.html