MariaDB连接报错1130:主机无法连接服务器问题求助
解决MariaDB错误:(HY000/1130) Host 'xxx.xxx.xxx' is not allowed to connect
这个错误的核心原因是数据库用户的连接主机权限未正确配置——哪怕你在cPanel里给用户开了全部数据库权限,MariaDB仍会限制只有指定主机的用户能发起连接。
解决步骤:
- 登录你的cPanel面板,找到「MySQL Databases」(或同类数据库管理入口)
- 定位到你创建的用户
theveis1_nand1,点击「修改权限」或「设置允许的主机」选项 - 根据场景配置允许的主机:
- 若网站与数据库在同一服务器:将允许主机设为
localhost或127.0.0.1(同时建议把代码里的$servername也改成localhost,比公网IP更稳定) - 若为外部服务器连接:直接填入错误提示里的IP
xxx.xxx.xxx;临时测试可填%(代表允许所有主机,生产环境禁用,有安全风险)
- 若网站与数据库在同一服务器:将允许主机设为
- 保存设置后,重新运行代码测试连接
你的代码整理(修正转义字符后):
连接数据库的connectDB.php:
<?php $servername = "xxx.xxx.xxx"; $username = "theveis1_nand1"; $password = "xxxxxxxxx"; $dbname = "theveis1_userdata"; $conn = new mysqli($servername, $username, $password, $dbname); if($conn->connect_error) { die("Error connect DB" . $conn->connect_error); } ?>
处理POST请求的代码:
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); if($_SERVER["REQUEST_METHOD"] == "POST") { include "$_SERVER[DOCUMENT_ROOT]/assets/coments/connectDB.php"; if ($conn === null) { die("Error connect DB"); } } ?>
额外提示:如果网站和数据库在同一服务器,把$servername改为localhost能规避多数IP权限问题,因为大部分服务器的MariaDB默认只监听本地端口。
内容的提问来源于stack exchange,提问作者Nand1
相关产品推荐
相关产品推荐

