Mysql始终无法远程连接访问,为什么?

时间:2022-10-30 14:47:49
Mysql数据库无法远程访问,已经尝试过各种建立用户的方法,
包括在phpAdmin上建立,
服务器本机改表法,授权法,
主机设置为所有ip可以建立链接;
已经尝过过将防火墙删除。
但是都是无法使用客户端来链接服务器,为什么?
同样的mysql设置,在本地内网就是192.168.26访问192.168.0.3这样是能够访问。请问为什么?
网上能找到的方法都试过了,
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
诸如这些授权法,将用户主机改成%这些,就不用重复告诉我了。
我的环境是widows下面的,my.ini根本没有下面这句的,所以这个也可以不用说了。
#bind-address = 127.0.0.1


我整个环境是phpstudy2010提供安装的。localhost下的root访问完全没问题。
这个地方困扰我很久了,有哪位资深人士如果知道的话,麻烦告诉我一声。

19 个解决方案

#1


你说的远程访问,是局域网内,还是外网访问?

#2


把你user表中的host,user字段记录打印出来,还有你连接时具体问题

#3


提示什么错误信息
你是怎样授权的 

#4


是外网的远程访问。
user表
Mysql始终无法远程连接访问,为什么?

链接的时候提示:(在本地php链接远程的数据,要很久才出现下面的报错)
Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 

#5


你在本地使用其他的客户端程序(比如Navicat之类),可以连接到远程数据库吗?

#6


外网的墙确定没问题?ip是不是需要映射啊?

#7


参考下贴中的检查方法并贴出你的检查结果(#43楼)

http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
[收集]mysql   无法联接故障现象及原因

#8


引用 5 楼 zeldady 的回复:
你在本地使用其他的客户端程序(比如Navicat之类),可以连接到远程数据库吗?


已经尝试过,无法连接上。

#9


引用 6 楼 songchunbo 的回复:
外网的墙确定没问题?ip是不是需要映射啊?


外网的墙确定无问题,我尝试过整过删除掉防火墙,重启过服务器。结果还是不行。

#10


telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

#11


引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

#12


你的网络是怎么样的,有内、外网?

#13


引用 12 楼 wwwwb 的回复:
你的网络是怎么样的,有内、外网?

外网在114.215...上装有Mysql(就是我的网站服务器上)
之后我在本地,我的电脑上,ip就肯定不是上面那个服务器的,也不同一个网段的,对数据库进行访问操作。使用naviacat来连接试过,使用php来连接也试过,就是连不通。

#14


停掉杀毒软件或者防火墙试一下。

#15


引用 11 楼 longstu_vc_java 的回复:
引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

把日志贴出来,有没有说找不到socket文件》?或者skip_network注释掉没有?

#16


引用 15 楼 z1988316 的回复:
引用 11 楼 longstu_vc_java 的回复:
引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

把日志贴出来,有没有说找不到socket文件》?或者skip_network注释掉没有?


已经注销了,准确的说,我的配置文件里面原本就没有skip_network,后来加上也不行。
部分错误日志见下:
110607 14:50:41  InnoDB: Starting shutdown...
110607 14:50:43  InnoDB: Shutdown completed; log sequence number 0 138734203
110607 14:50:43 [Note] MySQL: Shutdown complete

110607 14:50:47  InnoDB: Started; log sequence number 0 138734203
110607 14:50:47 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110607 16:57:04  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110607 16:57:07  InnoDB: Started; log sequence number 0 138752040
110607 16:57:46 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)
110607 17:17:30 [Note] MySQL: Normal shutdown

110607 17:17:31  InnoDB: Starting shutdown...
110607 17:17:33  InnoDB: Shutdown completed; log sequence number 0 138758240
110607 17:17:33 [Note] MySQL: Shutdown complete

110607 17:19:02  InnoDB: Started; log sequence number 0 138758240
110607 17:19:41 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)

#17


我昨天将所有的防火墙以及防火墙有关的东西,Dr,washon什么的,ARP,qq全部删除了,重启了服务器,还是不能远程连接。太怪异了!

#18


公布一个惊人的消息:我使用的是phpStudy2010安装包安装的mysql环境,这个安装包是方便了我们学习,但是作者也太狠了,居然禁止了创建远程访问的账户,并且开了一个隐藏的账户:test,只有这个账户能够远程访问,其他的都不能。被我无意中试出来的。各位如果使用这个安装包来做商业网站的话要小心了。
另外,由于这个包并没有留下作者的联系方式,如果能够联系到原作者,请转告他,希望他能将聪明才智发挥在正道上,这样才会得到大家的尊敬,才能产生更多正面的利益。

#19


我也遇到这个问题,已解决!
其实这个问题如果网上所有的方法都试遍,都还没辙的话,那么问题一定出在你的主机服务商那里,例如,我用盛大云主机,MYSQL无论如何都无法远程连上,后来进他们后台一看,原来还有一个安全组管理,正是这里可以设置端口。

#1


你说的远程访问,是局域网内,还是外网访问?

#2


把你user表中的host,user字段记录打印出来,还有你连接时具体问题

#3


提示什么错误信息
你是怎样授权的 

#4


是外网的远程访问。
user表
Mysql始终无法远程连接访问,为什么?

链接的时候提示:(在本地php链接远程的数据,要很久才出现下面的报错)
Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 

#5


你在本地使用其他的客户端程序(比如Navicat之类),可以连接到远程数据库吗?

#6


外网的墙确定没问题?ip是不是需要映射啊?

#7


参考下贴中的检查方法并贴出你的检查结果(#43楼)

http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
[收集]mysql   无法联接故障现象及原因

#8


引用 5 楼 zeldady 的回复:
你在本地使用其他的客户端程序(比如Navicat之类),可以连接到远程数据库吗?


已经尝试过,无法连接上。

#9


引用 6 楼 songchunbo 的回复:
外网的墙确定没问题?ip是不是需要映射啊?


外网的墙确定无问题,我尝试过整过删除掉防火墙,重启过服务器。结果还是不行。

#10


telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

#11


引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

#12


你的网络是怎么样的,有内、外网?

#13


引用 12 楼 wwwwb 的回复:
你的网络是怎么样的,有内、外网?

外网在114.215...上装有Mysql(就是我的网站服务器上)
之后我在本地,我的电脑上,ip就肯定不是上面那个服务器的,也不同一个网段的,对数据库进行访问操作。使用naviacat来连接试过,使用php来连接也试过,就是连不通。

#14


停掉杀毒软件或者防火墙试一下。

#15


引用 11 楼 longstu_vc_java 的回复:
引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

把日志贴出来,有没有说找不到socket文件》?或者skip_network注释掉没有?

#16


引用 15 楼 z1988316 的回复:
引用 11 楼 longstu_vc_java 的回复:
引用 10 楼 iihero 的回复:
telnet IP <端口>
先简单探测一下,如果不能连,就是网络的问题。先解决了这个再说。

这样能够连通。就是连数据库的时候无法连上。

把日志贴出来,有没有说找不到socket文件》?或者skip_network注释掉没有?


已经注销了,准确的说,我的配置文件里面原本就没有skip_network,后来加上也不行。
部分错误日志见下:
110607 14:50:41  InnoDB: Starting shutdown...
110607 14:50:43  InnoDB: Shutdown completed; log sequence number 0 138734203
110607 14:50:43 [Note] MySQL: Shutdown complete

110607 14:50:47  InnoDB: Started; log sequence number 0 138734203
110607 14:50:47 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110607 16:57:04  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110607 16:57:07  InnoDB: Started; log sequence number 0 138752040
110607 16:57:46 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)
110607 17:17:30 [Note] MySQL: Normal shutdown

110607 17:17:31  InnoDB: Starting shutdown...
110607 17:17:33  InnoDB: Shutdown completed; log sequence number 0 138758240
110607 17:17:33 [Note] MySQL: Shutdown complete

110607 17:19:02  InnoDB: Started; log sequence number 0 138758240
110607 17:19:41 [Note] MySQL: ready for connections.
Version: '5.0.91-community-nt-log'  socket: ''  port: 3306  MySQL Community Edition (GPL)

#17


我昨天将所有的防火墙以及防火墙有关的东西,Dr,washon什么的,ARP,qq全部删除了,重启了服务器,还是不能远程连接。太怪异了!

#18


公布一个惊人的消息:我使用的是phpStudy2010安装包安装的mysql环境,这个安装包是方便了我们学习,但是作者也太狠了,居然禁止了创建远程访问的账户,并且开了一个隐藏的账户:test,只有这个账户能够远程访问,其他的都不能。被我无意中试出来的。各位如果使用这个安装包来做商业网站的话要小心了。
另外,由于这个包并没有留下作者的联系方式,如果能够联系到原作者,请转告他,希望他能将聪明才智发挥在正道上,这样才会得到大家的尊敬,才能产生更多正面的利益。

#19


我也遇到这个问题,已解决!
其实这个问题如果网上所有的方法都试遍,都还没辙的话,那么问题一定出在你的主机服务商那里,例如,我用盛大云主机,MYSQL无论如何都无法远程连上,后来进他们后台一看,原来还有一个安全组管理,正是这里可以设置端口。

#20