首页
学习
活动
专区
工具
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 服务器。

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

相关·内容

  • xampp环境配置下出现的问题解决 — mysqli_real_connect(): (HY0001045): Access denied for user ‘root‘@‘localhost

    XAMPP 环境配置下出现的问题 版本 :xampp 7.3.1      今天,柳妹在虚拟机上面又一次搭建xampp的环境的时候,在mysql的管理界面对于root@localhost 管理用户进行密码设定的时候...,修改了密码,当再一次点击进入的时候,报错如下: MySQL 返回:无法连接:无效的设置。...mysqli_real_connect(): (HY000/1045): Access denied for user ‘root’@‘localhost’ (using password: NO)...phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。...您应该检查配置文件中的主机、用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致。

    2K10

    MySQL 报错:ERROR 2002 (HY000): Cant connect to local MySQL server through socket

    一、错误现场还原: 下面我们通过三种方式来连接,然后观察提示的错误信息: 1、直接使用“mysql”命令,不带主机名参数; 2、使用带了主机名“localhost”参数的“mysql -h localhost...”命令; 3、使用带了主机名“127.0.0.1”参数的“mysql -h 127.0.0.1”命令。.../lib/mysql/mysql.sock’ (2) 2、[root@lam7 opt]# mysql -h localhost ERROR 2002 (HY000): Can’t connect to...、错误产生原因解析: 这是由于我们连接数据库使用的主机名参数为“localhost”,或者未使用主机名参数、服务器默认使用“localhost”做为主机名。...使用主机名参数为“localhost连接mysql服务端时,mysql客户端会认为是连接本机,所以会尝试以socket文件方式进行连接(socket文件连接方式,比“ip:端口”方式效率更高),这时根据配置文件

    49.3K20

    如何从命令行管理MySQL数据库和用户

    MySQL服务器允许我们创建大量用户和数据库并授予适当的权限,以便用户可以访问和管理数据库。 在你开始之前 在开始本教程之前,我们假设您已经在系统上安装了MySQL或MariaDB服务器。...' IDENTIFIED BY 'user_password'; 在上面的命令中,我们将主机名部分设置为localhost,这意味着该用户将只能从本地主机(即从运行MySQL服务器的系统)连接到MySQL...如果您想授予来自其他主机的访问权限,只需使用远程计算机IP更改本地主机,或者为主机部分使用'%'通配符,这意味着用户帐户将能够从任何主机连接。...您可以通过发出以下命令找到您的服务器版本: mysql --version 如果你有MySQL 5.7.6或更高版本或MariaDB 10.1.20及更新版本,要更改密码,请使用以下命令: ALTER...ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost' 与处理数据库时一样,以避免错误可以使用: DROP

    1.9K20

    MySQL连接错误的十二“坑”

    环境准备 自建MySQL环境主机 主机:iZbp1e*****krn92qrx0Z 内网ip: 10.26.254.217 客户端ecs主机 主机:iZbp1e6*****zkrn92qrwzZ 内网ip...' (110) 可能1:安全限制,不允许访问 ?...一般表现为telnet特定特定端口不通 解决办法: 检查应用所在主机的安全规则是否有拦截 可能2:端口错误 ? 端口错误,即使没有安全限制也无法连接,telnet 特定端口也不会通。...解决办法: (先确认内存是否已经不足) 增加mysql的内存,如果是rds,可以考虑升级RDS的实例规格 ERROR 1130 (HY000) 现象描述 ERROR 1130 (HY000): Host...),尝试调整来源主机的应用行为 3、如果无法手动干预,尝试调整mysql的max_connections的值,如果是rds for mysql,需要升级实例规格来提升连接

    4.1K90

    MySQL(二)之服务管理与配置文件修改和连接MySQL

    **远程登录时出现:ERROR 1130 (HY000): Host '172.16.15.53' is not allowed to connect to this MySQL server   4)...-h 指定连接MySQL的主机IP或者主机名。                     -P 如果修改了MySQL的端口,使用该选项指定MySQL修改之后的端口。             ...**在连接的过程中可能会出现以下错误:ERROR 2003 (HY000): Can't connect to MySQL server on '10.10.2.97' (111)       a.目标主机上的...b.目标主机上的MySQL只允许本地登录。 四、远程连接MySQL   在这之前尝试了很久,在网上搞了好久才把这个解决了。   ...远程登录时出现:ERROR 1130 (HY000): Host '172.16.15.53' is not allowed to connect to this MySQL server     完成了这一步

    2.7K80

    关于对连接数据库时出现1130-host “**” is not allowed to connect to this MySqlmariadb server

    在完成mariadb的搭建后,在端口与防火墙均为正常的情况下,出现了1130- Host xxx is not allowed to connect to this MariaDb server 的情况...笔者在网络上寻找了许久,最终发现了是因为授权的问题,使得连接权限受阻。 所以,我们在这里,只需要进入数据库中,给予其权限即可。...具体解决代码如下: [root@localhost ~]# mysql -u root -p Enter password: #首先进入mysql数据库中 MariaDB [(none)]> grant...privileges on *.* to 'root'@'%' with grant option; Query OK, 0 rows affected (0.15 sec) #进入之后,输入以上代码,目的是将登录的主机设置为全部都能登录...或者直接重启mariadb server服务 MariaDB [(none)]> exit; Bye #退出数据库,结束! 现在再使用navicat连接使用即可。

    77620

    宝塔面板Mysql 5.6版本无法正常启动的解决方法

    ,前段时间就遇到了两个数据库上的问题,来看一下 朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下 第一个问题 第一个问题是 phpMyAdmin 报错: mysqli_real_connect...(): (HY000/2002): No such file or directory 解决方法把 phpMyAdmin 目录中的配置文件做以下修改: /www/server/phpmyadmin/phpmyadmin_XXXXXXXX.../libraries目录下 config.default.php文件中的$cfg['Servers'][$i]['host'] = 'localhost';,将localhost改为127.0.0.1...Mysql 的 3306 端口,我给添加上了 然后启动还是失败,继续检查,要来了 SSH 信息,连接服务器 使用命令检查了一下是否是磁盘空间不足、内存不足导致的 mysql 服务无法正常启动 命令如下...,没事不要重启服务器,如果修改过配置文件等,重载服务即可无需重启 确实需要重启请使用面板中的安全重启,切勿使用 reboot 命令

    12.2K31
    领券