与 MySQL 4.1.24 相关的网站连接错误
Website connection error related with MySQL 4.1.24
我的网站出现错误(MySQL 使用 TCP/IP 连接)
Can't connect to local MySQL server
这听起来很简单,也许,但并不像看起来那么容易解决。起初我验证了 mysqld 进程是 运行ning。然后连接到SSH服务器并启动/etc/init.d/mysqld重启,但没有任何改变。我还检查了服务器 运行ning,使用 telnet your-host-name tcp-ip-port-number,以防万一,但 MySQL 没有在此端口上工作并显示另一个错误:telnet:无法连接到远程主机:连接被拒绝
我最后尝试的是 运行 mysql 使用 skip-networking 选项,但它并没有像上面的其他尝试那样有帮助。任何建议将不胜感激。
这听起来像是您被服务器上的防火墙阻止了。您可以禁用防火墙进行快速测试:
service iptables stop
service iptables start
本文将向您展示如何将规则应用于防火墙以允许 mysql 访问。
http://www.cyberciti.biz/tips/linux-iptables-18-allow-mysql-server-incoming-request.html
如果你有 SELinux,你会遇到我无法帮助你解决的另一组问题。
我觉得权限问题。
它 运行 在本地机器上吗?
如果是,那么我可能不允许监听任何端口(安全目的:主要在基于 linux 的服务器上)。否则,网络用户可能没有被授予通过互联网访问 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
首先,您应该通过检查进程列表来验证 MySQL 实际上是 运行。在 linux 上,您可以这样做,请注意,您应该将 mysqld_safe 和 mysqld 视为两个单独的进程。
sudo ps auxwww|grep -i mysqld
如果不是 运行,我会检查 MySQL 错误日志以获取有关它未启动的原因的线索。
如果您随后验证它是 运行,我们可以检查它正在侦听的端口或 unix 套接字,就像这样。如果这不起作用,请获取 mysqld 的进程 ID(不是 mysqld_safe)并尝试使用 grep 而不是 'mysql'
搜索它
sudo netstat -anp|grep -i mysql
您显然希望在不跳过网络的情况下重新启动以查看 TCP 套接字出现。
根据它的输出,您应该同时看到一个 unix 套接字和一个 tcp 套接字。还要检查第四列中的 TCP 套接字地址,它可能会显示 127.0.0.1:3306 或 0.0.0.0:3306。前者表示您只能通过本地主机 (127.0.0.1) 进行连接,后者表示连接将适用于任何 IP 地址。
如果您已完成所有这些操作但仍然不确定其工作原理,您可以 post processlist 和 netstat 输出以供进一步查看,以及您用于尝试的确切设置并连接到 MySQL 并指明您是从同一台服务器(即本地)还是通过网络从另一台服务器连接。
另请参阅:
http://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html
这个错误通常意味着 MySQL 不是 运行 在系统上或者您在尝试连接到 mysqld 服务器时使用了错误的 TCP/IP 端口号。
尝试连接到本地机器上的 mysqld 守护程序并通过 mysqladmin 变量检查,TCP/IP 端口配置为使用 mysqld(可变端口)。
也许你是运行 MySQL-服务器,对保存套接字文件的目录没有相应的权限。在这种情况下,要么更改目录的权限,要么重新启动 mysqld
您也可能对以下讨论感兴趣:http://community.office365.com/en-us/f/172/p/266451/815406.aspx
不幸的是,我不是专业人士,我的建议帮不上什么忙,但我发现的关于您的问题的所有信息
我的网站出现错误(MySQL 使用 TCP/IP 连接)
Can't connect to local MySQL server
这听起来很简单,也许,但并不像看起来那么容易解决。起初我验证了 mysqld 进程是 运行ning。然后连接到SSH服务器并启动/etc/init.d/mysqld重启,但没有任何改变。我还检查了服务器 运行ning,使用 telnet your-host-name tcp-ip-port-number,以防万一,但 MySQL 没有在此端口上工作并显示另一个错误:telnet:无法连接到远程主机:连接被拒绝 我最后尝试的是 运行 mysql 使用 skip-networking 选项,但它并没有像上面的其他尝试那样有帮助。任何建议将不胜感激。
这听起来像是您被服务器上的防火墙阻止了。您可以禁用防火墙进行快速测试:
service iptables stop
service iptables start
本文将向您展示如何将规则应用于防火墙以允许 mysql 访问。
http://www.cyberciti.biz/tips/linux-iptables-18-allow-mysql-server-incoming-request.html
如果你有 SELinux,你会遇到我无法帮助你解决的另一组问题。
我觉得权限问题。
它 运行 在本地机器上吗? 如果是,那么我可能不允许监听任何端口(安全目的:主要在基于 linux 的服务器上)。否则,网络用户可能没有被授予通过互联网访问 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
首先,您应该通过检查进程列表来验证 MySQL 实际上是 运行。在 linux 上,您可以这样做,请注意,您应该将 mysqld_safe 和 mysqld 视为两个单独的进程。
sudo ps auxwww|grep -i mysqld
如果不是 运行,我会检查 MySQL 错误日志以获取有关它未启动的原因的线索。
如果您随后验证它是 运行,我们可以检查它正在侦听的端口或 unix 套接字,就像这样。如果这不起作用,请获取 mysqld 的进程 ID(不是 mysqld_safe)并尝试使用 grep 而不是 'mysql'
搜索它sudo netstat -anp|grep -i mysql
您显然希望在不跳过网络的情况下重新启动以查看 TCP 套接字出现。
根据它的输出,您应该同时看到一个 unix 套接字和一个 tcp 套接字。还要检查第四列中的 TCP 套接字地址,它可能会显示 127.0.0.1:3306 或 0.0.0.0:3306。前者表示您只能通过本地主机 (127.0.0.1) 进行连接,后者表示连接将适用于任何 IP 地址。
如果您已完成所有这些操作但仍然不确定其工作原理,您可以 post processlist 和 netstat 输出以供进一步查看,以及您用于尝试的确切设置并连接到 MySQL 并指明您是从同一台服务器(即本地)还是通过网络从另一台服务器连接。
另请参阅: http://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html
这个错误通常意味着 MySQL 不是 运行 在系统上或者您在尝试连接到 mysqld 服务器时使用了错误的 TCP/IP 端口号。
尝试连接到本地机器上的 mysqld 守护程序并通过 mysqladmin 变量检查,TCP/IP 端口配置为使用 mysqld(可变端口)。
也许你是运行 MySQL-服务器,对保存套接字文件的目录没有相应的权限。在这种情况下,要么更改目录的权限,要么重新启动 mysqld
您也可能对以下讨论感兴趣:http://community.office365.com/en-us/f/172/p/266451/815406.aspx
不幸的是,我不是专业人士,我的建议帮不上什么忙,但我发现的关于您的问题的所有信息