与MySQL 4.1.24相关的网站连接错误

时间:2015-03-11 06:59:15

标签: mysql tcp

我的网站上出现错误(MySQL与TCP / IP连接)

Can't connect to local MySQL server

听起来很容易,但似乎并不那么容易解决。起初我确认mysqld进程正在运行。然后连接到SSH服务器并启动 /etc/init.d/mysqld restart ,但没有任何更改。我检查的是运行的服务器,使用 telnet your-host-name tcp-ip-port-number ,以防万一,但是MySQL不能在这个端口上运行并显示另一个错误: telnet:无法连接到远程主机:拒绝连接 我试过的最后一个是使用skip-networking选项运行mysql,它没有上述其他尝试的帮助。任何建议将非常感激。

4 个答案:

答案 0 :(得分:1)

此错误通常表示MySQL未在系统上运行,或者在尝试连接到mysqld服务器时使用了错误的TCP / IP端口号。

尝试连接到本地计算机上的mysqld守护程序,并通过mysqladmin变量检查,哪个TCP / IP端口配置为使用mysqld(变量端口)。

也许您正在运行MySQL-server,对于保存套接字文件的目录没有相应的权限。在这种情况下,要么更改目录的权限,要么重新启动mysqld

此讨论可能对您有意义:http://community.office365.com/en-us/f/172/p/266451/815406.aspx

不幸的是,我不是专业人士,我的建议可以帮助不多,但是我找到的关于你的问题的所有内容

答案 1 :(得分:0)

这听起来好像被服务器上的防火墙阻挡了。您可以禁用防火墙以进行快速测试:

service iptables stop
service iptables start

本文将向您展示如何将规则应用于防火墙以允许mysql访问。

http://www.cyberciti.biz/tips/linux-iptables-18-allow-mysql-server-incoming-request.html

如果你有SELinux,你还有另外一套我无法帮助你的问题。

答案 2 :(得分:0)

听我的许可问题。

它是否在本地计算机上运行? 如果是,那么我可能不允许它监听任何端口(安全目的:主要在基于Linux的服务器上)。否则,网络用户可能没有权限通过Internet访问mysql。

正如你所说,如果它是一个网站,我永远不会允许用户直接访问mysql,但只有服务器应该:可能的安全漏洞否则。(你不希望你的数据库丢弃,你呢? ?)

嗯,问题的正确答案就在这里:http://dev.mysql.com/doc/refman/5.1/en/grant.html

这可能会有所帮助: Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server

答案 3 :(得分:0)

首先,您应该通过检查您的进程列表来验证MySQL是否实际运行。在linux上你可以这样做,请注意你应该将mysqld_safe和mysqld看作两个独立的进程。

sudo ps auxwww|grep -i mysqld

如果它没有运行,我会检查MySQL错误日志,找出它没有启动的原因。

如果您确认它正在运行,我们可以查看它正在侦听的端口或unix套接字。如果这不起作用,请获取mysqld(而不是mysqld_safe)的进程ID,并尝试用grep而不是'mysql'搜索它

sudo netstat -anp|grep -i mysql

您显然希望在没有跳过网络的情况下重新启动以查看TCP套接字。

根据输出,您应该看到unix套接字和tcp套接字。还要检查第四列中TCP套接字的地址,它可能会说127.0.0.1:3306或0.0.0.0:3306。前者意味着您只能通过localhost(127.0.0.1)连接,后者意味着连接将适用于任何IP地址。

如果您已经完成了所有这些并仍然不确定它为何起作用,您可以发布进程列表和netstat输出以供进一步检查,以及您尝试连接到MySQL并指示的确切设置您是通过网络从同一服务器(即本地)连接还是从另一台服务器连接。

另见: http://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html