PHP 连接 MySQL 服务,出现“SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接。”的错误信息,是因为连接不上 MySQL 服务器。
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
SQLSTATE[HY000] [2002] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
该错误信息由连接MySQL数据库的程序语言所在的操作系统底层产生,如果操作系统是Windows,简单中文版Windows的错误信息是GBK编码的,当程序语言代码使用的文字编码和操作系统底层返回的文字编码不一致时会出现乱码,想要正确处理这些错误信息,需要使用iconv()之类的函数,将编码转换为程序语言代码使用的编码,英文版Windows操作系统的错误信息为纯英文,如上面所示。
出现“由于目标计算机积极拒绝,无法连接”可能的原因有:
- MySQL数据库服务器没有启动
这种情况启动一下MySQL服务器就OK了。 - 数据库服务器地址填写错误。
服务器地址可以以域名形式填写,也可以以回送IP(如127.0.0.1)内网IP(如192.168.1.2)外网IP(如110.188.213.43)填写 - MySQL服务器绑定了主机名
如果MySQL配置项中设置了类似于bind-address=wuxiancheng.cn的选项,使用绑定的主机(wuxiancheng.cn)来访问即可 - 数据库端口错误
MySQL数据库服务器默认端口为3306,如果修改了服务器使用的端口,连接数据库时必须使用相同的端口号。
在MySQL配置文件的[mysqld]段,查看是否有port=3306,如果有并且不是3306,连接MySQL数据库的程序代码中必须指定相同的端口号。 - MySQL服务器所在的计算机开启了防火墙
在防火墙设置中将MySQL服务器使用的端口设置为允许访问即可
|
|