<meta charset="utf-8">
本地连接到MySQL服务器,可以从远程位置如果无法连接
当发生这种情况,请尝试以下的检查和测试的内容,可确定的问题。Haebomyeon
远程访问您可能会遇到的错误消息,如下所示。
ERROR 2003(HY000):无法连接到MySQL服务器上的......“
ERROR 1045(28000):用户'用户'@'主机'(使用密码:访问被拒绝。)
如果连接失败,ERROR 2003(1)从一开始,下面的清单。
如果身份验证失败,ERROR 1045(7)从一开始,下面的清单。
现在,高优先级的运行时配置文件(my.cnf文件/ my.ini)中的配置文件的选项,运行的选项,仔细一看是很重要的。
(1)跳网络
- skip-networking选项跳过网络配置文件中的mysql服务器上运行,或如果服务器只允许本地的Unix套接字连接。如果你掀起。
(2)绑定地址
127.0.0.1 - 绑定地址的绑定地址值或购股权或禁用,请确保该配置文件。决定你要听任何IP及相关的TCP / IP套接字绑定。 127.0.0.1,这意味着它不允许外部连接。修改利用,该系统具有的所有IP地址为0.0.0.0,或在系统中分配一个特定的IP指定的值。分配的IP地址,如果你有两个或两个以上,这是共同指定相应的值。
(3)端口
用于绑定的TCP / IP套接字端口号。默认值是3306,但出于安全原因,或运行多个MySQL服务器,一台服务器上,如果你已经改变了这么确定这个值。选项来运行 - 端口= 3306,作为一个配置文件中指定的端口= 3306。
确定(4)听
外壳NETSTAT-NA | grep的3306
请确保通过上面的命令,端口是听。如果你不能确认,1-3再次检查。更改设置后,必须重新启动服务器。 (在其他情况下,端口设置,输入端口号)。
(5)TCP / IP套接字连接尝试
mysql.sock的文件访问mysql客户端上运行的本地常见的。
检查上面的选项后,本地的TCP / IP套接字连接尝试。
外壳> mysql-H的127.0.0.1-P 3306-U盘根-P
指定localhost localhost和127.0.0.1相同的名字,但如果你会尝试连接到Unix套接字。
1-4再次检查本地的TCP / IP连接失败。
(6)防火墙
本地TCP / IP套接字连接,一旦Telnet连接,从远程位置不应该。
外壳的telnet-H xxx.xxx.xxx.xxx-P 3306
直到1-5是正常的,如果Telnet连接是不可能的,在防火墙上阻塞。防火墙尝试连接到本地主机的防火墙,访问服务器的防火墙,在防火墙和路由等,在其路径的谎言,可
- 本地防火墙应该确定一个特定的输出数据包是否被限制。
确保服务器的防火墙:MySQL服务器正在使用的端口的防火墙选项。
(7)确认用户/主机的组合
从我使用的mysql数据库连接的用户名和主机地址正确注册。
MySQL中使用MySQL;
MySQL中SELECT用户,从用户的主机WHERE用户='用户名';
主机被指定为如下。
- %允许来自所有主机的访问:
- Xxx.xxx.xxx.xxx:允许从特定主机的连接
- Xxx.xxx%允许访问从某一个波段的
允许连接一个特定的主机名称:(跳过名称解析如果不提供)
%,使用的语法MySQL的喜欢,你可以指定一个特定的频段,或整个主机
例)192.168.0.0/16 => 192.168%
(8)确认密码
请确保您连接到用户/主机/密码组合是有效的。
MYSQL> SELECT COUNT(*)FROM用户WHERE用户='用户名'和主机“主机”和password = PASSWORD('密码')
为了您的用户名,如果有多个记录,其中大部分指定一个特定的“价值”记录第一次使用。
(参见:http://dev.mysql.com/doc/refman/5.0/en/connection-access.html)
例如,用户user1 @%和user1@192.168.0.1记录不存在,试图访问主机192.168.0.1上的一个用户user1作为没有使用的user1@192.168.0.1的价值如果user1%的价值进行身份验证,因此,如果您的用户名和权限密码设置的多条记录,需要更多的关注。
(9)FLUSH PRIVILEGES
表相关的用户表和权限添加/更改,如果服务器使用下面的语法是使用新的验证数据的值。
MySQL的> FLUSH PRIVILEGES;
(10)跳过名的决心
未指定的skip-name-resolve选项,MySQL服务器经历一个过程,检查通过DNS名称的远程主机的IP连接。此参数的值,如果服务器安装在内部网络上,使域名解析的DNS服务器的访问被安装在系统中没有设置正确,可能会导致延迟,这是一般
尝试连接到主机的IP通过DNS的名称是通过名称而不是IP用户表,所以为了避免混淆,通过指定。
(11)其他特殊情况
MySQL 4.1中启用新的密码散列函数默认情况下,如果你使用的是传统的客户机/服务器的安全认证,旧密码的选项,ODBC连接器4.1或更早版本,请参考下面的链接,适当地调整应该被使用。
http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html
所有的过程1-10,尽管出现1045错误的事实,如果通过下面的命令指定用户的密码的哈希值,旧的方式,然后进行连接测试的外观。罕见,但如果有一个MySQL 5.0版本的MySQL客户端使用旧的密码散列。
MySQL的> SET PASSWORD FOR'用户'@'主机'= OLD_PASSWORD('密码');
没有评论:
发表评论