我的网站上出现错误(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,它没有上述其他尝试的帮助。任何建议将非常感激。
答案 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