灰晨 发表于 2021-7-17 15:48:08

python+mysql+pymysql

我在pycharm上使用pymysql模块来连接操作MySQL数据库,在我电脑上没啥问题,现在我想在其他电脑上连我电脑的MySQL数据库
db = pymysql.connect(host="localhost", user="****", passwd="****", db="****")
应该是要将这个host改成我电脑的IP地址,应该没错吧.....

遭遇错误:
我电脑是笔记本,连的WiFi,查IP地址时,以太网是断开的,是没有电缆宽带什么的
我尝试打开网络适配器,点开我连接的WiFi的详细信息,用这个IPv4地址来代替上面的localhost
可惜报错,报错信息:
pymysql.err.OperationalError: (1130, "PC201910271237M' is not allowed to connect to this MySQL server")

问题:
是不是一定要连网线什么的才可以?还是我这台只连了wifi的电脑,可以在其他电脑上用pymysql模块来连接操作我电脑的MySQL数据库?
或者直接跟我说我应该怎么办才能在其他电脑上连接操作我的MySQL数据库,主要就是这个问题。

跪求!!!!

kogawananari 发表于 2021-7-17 16:36:33

连同一个wifi 或者你连另一台的热点 或者另一台连你的热点

灰晨 发表于 2021-7-17 16:45:37

kogawananari 发表于 2021-7-17 16:36
连同一个wifi 或者你连另一台的热点 或者另一台连你的热点

我现在还在我自己的电脑上使用,只是将localhost改成我连的WiFi的IPv4地址就报错了

Wirror 发表于 2021-7-17 17:19:02

本帖最后由 Wirror 于 2021-7-17 17:20 编辑

host是改成ip地址了吗?user是什么?我也在尝试从其他电脑连接数据库,但是遇到连接超时的问题

灰晨 发表于 2021-7-17 17:26:07

Wirror 发表于 2021-7-17 17:19
host是改成ip地址了吗?user是什么?我也在尝试从其他电脑连接数据库,但是遇到连接超时的问题

host改ip地址了,就是我看网上查的IP地址都是以太网的,我改的这个是在适配器点这个wifi的详细信息里的IPv4地址
user就是root
之前
db = pymysql.connect(host="localhost", user="root", passwd="***", db="***")
我就改了个host就报错了

suchocolate 发表于 2021-7-17 18:55:47

1) 先看看mysql监听端口,cmd下:netstat -an
2) 检查防火墙设置,是否放开了mysql的端口。

redforce 发表于 2021-7-17 19:46:03

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH   PRIVILEGES;


应该是root用户没有远程链接的权限。增加权限即可。
mysql里去执行以上sql语句,先执行第一条,授权,‘mypassword’改成远程连接的密码(自己定)
然后执行第二条,刷新权限,生效

wp231957 发表于 2021-7-17 20:55:20

redforce 发表于 2021-7-17 19:46
应该是root用户没有远程链接的权限。增加权限即可。
mysql里去执行以上sql语句,先执行第一条,授权,‘ ...

请问一下,我的操作和你的是一样的吗?
我是打开mysql.user并把root前面的localhost修改成%   然后我发现需要重启电脑才管用,按你的意思是刷新一下权限就可以了吗??

redforce 发表于 2021-7-17 21:31:19

wp231957 发表于 2021-7-17 20:55
请问一下,我的操作和你的是一样的吗?
我是打开mysql.user并把root前面的localhost修改成%   然后我发 ...

去mysql里执行我给的那sql语句,不要直接修改,会出问题的。你那个localhost表示允许本机连接。执行sql语句后,刷新权限就可以了,不需要重启

redforce 发表于 2021-7-17 21:32:14

本机cmd里mysql -uroot -p进mysql客户端,然后执行
或者客户端工具里去执行都可以

antonybear 发表于 2021-7-17 23:19:15

来学习一下

阿奇_o 发表于 2021-7-17 23:29:38

host 不一定要改,因为host名,最终是靠IP 和端口(你可以直接写host='192....IP')。 有时改了host,反而会造成一些不必要的麻烦。。
最好清楚明白自己在干什么,再修改host。。
改的时候,要确保拼写host名和IP 正确,小心检查。。

连接建议:
1. 先 确认从其他机子上 ping mysql所在机子的ip 是否通。
(若ping不通可能是防火墙,也可能是MySQL服务没启动或不正确,或其他原因)

2. 确认 所使用的mysql账号 权限是否足够,确保足够,可以修改权限,如
    授予全部权限给root用户,且允许在任意IP('%')连接MySQL,的SQL命令是
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' ;
    FLUSH   PRIVILEGES;# 刷新权限而生效(有时好像刷新不用也行)

灰晨 发表于 2021-7-19 10:47:48

redforce 发表于 2021-7-17 19:46
应该是root用户没有远程链接的权限。增加权限即可。
mysql里去执行以上sql语句,先执行第一条,授权,‘ ...

报错了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '111' WITH GRANT OPTION' at line 1{:9_220:}

名字只有七个字 发表于 2021-7-19 14:56:51

在cmd中运行 ipconfig /all ,输出截图发过来,我告诉你你的IP地址
页: [1]
查看完整版本: python+mysql+pymysql