网站推广.NET

网站推广.NET

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解决方法

来源:互联网

如果你使用php连接mysql数据库时遇到了以下错误提示:

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused

那么你可以尝试按照下面的步骤来解决这个问题。

  1. 确认MySQL服务是否正常运行

首先应该检查MySQL服务是否正常运行,如果服务未运行或者启动失败,就可能会导致连接被拒绝的错误。你可以通过以下命令来检查MySQL服务的状态:

$ systemctl status mysql.service

立即学习“PHP免费学习笔记(深入)”;

如果MySQL服务未运行,你可以使用以下命令启动服务:

$ systemctl start mysql.service

  1. 检查MySQL服务是否监听正确的端口

如果MySQL服务已经在运行,你需要检查MySQL服务是否监听正确的端口。默认情况下,MySQL服务监听端口为3306。你可以通过以下命令来检查MySQL服务绑定的端口:

$ netstat -an | grep 3306

如果MySQL服务未绑定正确的端口,你需要在MySQL配置文件(my.cnf)中添加以下行:

[mysqld]
port=3306

修改完配置文件后,你需要重启MySQL服务才能使修改生效:

$ systemctl restart mysql.service

  1. 确认用户名和密码是否正确

如果MySQL服务已经正确运行,并且监听了正确的端口,你需要检查用户名和密码是否正确。在连接MySQL时,你需要使用正确的用户名和密码才能登录MySQL服务器。如果你不确定用户名和密码是否正确,可以尝试在MySQL命令行界面中使用这个用户名和密码进行登录:

$ mysql -u username -p

在这个命令中,你需要将"username"替换为你要使用的用户名,然后输入这个用户的密码来登录MySQL服务器。如果登录成功,说明你输入的用户名和密码是正确的。

  1. 确认MySQL数据库权限是否正确

最后一步是确认连接MySQL的用户是否具有足够的权限来访问需要使用的数据库。在连接MySQL服务器时,你需要指定要连接的数据库名称。如果指定的数据库不存在或者你没有访问这个数据库的权限,那么连接就会被拒绝。

你可以通过以下命令来检查MySQL用户所具有的权限:

$ mysql -u username -p -e "SHOW GRANTS FOR username;"

在这个命令中,你需要将"username"替换为你要查询权限的MySQL用户。执行完这个命令后,你就可以看到这个用户具有的权限。

如果你要访问的数据库不存在或者没有访问权限,你需要在MySQL命令行界面中使用以下命令来创建或授予访问权限:

CREATE DATABASE dbname;
grant ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';

在这个命令中,你需要将"dbname"替换为你要创建的数据库名称,"username"为你要授权的MySQL用户名。

总结

通过以上这些步骤,你应该已经可以解决PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的错误。首先,你需要检查MySQL服务是否已经启动并且监听了正确的端口;其次,你需要确认输入的用户名和密码是否正确;最后,你需要检查MySQL用户是否具有访问数据库的权限。

mysqli_connect