首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysqli_real_connect()(HY000/1130)不允许主机‘localhost’连接到此MariaDB服务器

问题概述

Mysqli_real_connect()(HY000/1130) 错误表示 MariaDB 服务器不允许从 localhost 连接。这个错误通常是由于 MariaDB 配置文件中的权限设置不正确导致的。

基础概念

  1. MariaDB:一个开源的关系型数据库管理系统,是 MySQL 的一个分支。
  2. Mysqli:PHP 中用于与 MySQL 数据库进行交互的扩展。
  3. 权限设置:数据库服务器对不同用户和主机的访问权限进行配置。

原因分析

这个错误通常是由于以下原因之一:

  1. 用户权限不足:MariaDB 服务器上没有为 localhost 用户分配足够的权限。
  2. 配置文件问题:MariaDB 的配置文件(通常是 my.cnfmy.ini)中可能设置了不允许 localhost 连接。

解决方法

1. 检查用户权限

首先,登录到 MariaDB 服务器并检查用户权限:

代码语言:txt
复制
mysql -u root -p

进入 MySQL 命令行后,运行以下命令查看用户权限:

代码语言:txt
复制
SELECT User, Host FROM mysql.user;

确保有一个用户允许从 localhost 连接。如果没有,可以创建或修改用户权限:

代码语言:txt
复制
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

或者修改现有用户的权限:

代码语言:txt
复制
GRANT ALL PRIVILEGES ON *.* TO 'existinguser'@'localhost';
FLUSH PRIVILEGES;

2. 检查配置文件

检查 MariaDB 的配置文件(通常是 my.cnfmy.ini),确保没有设置不允许 localhost 连接的选项。例如,检查以下配置项:

代码语言:txt
复制
[mysqld]
bind-address = 127.0.0.1

如果 bind-address 设置为 127.0.0.1,则只允许本地连接。可以将其注释掉或修改为 0.0.0.0 以允许所有 IP 连接:

代码语言:txt
复制
# bind-address = 127.0.0.1

修改配置文件后,重启 MariaDB 服务器以使更改生效:

代码语言:txt
复制
sudo systemctl restart mariadb

应用场景

这个错误通常出现在以下场景:

  1. 本地开发环境:开发者尝试从本地机器连接到 MariaDB 服务器。
  2. 部署环境:应用程序尝试从同一台服务器上的数据库服务连接到 MariaDB。

参考链接

通过以上步骤,你应该能够解决 Mysqli_real_connect()(HY000/1130) 错误,并成功连接到 MariaDB 服务器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券