_mysql_connector.MySQLInterfaceError: Host ‘112.96.228.148‘ is not allowed to connect to this MariaD

_mysql_connector.MySQLInterfaceError: Host ‘112.96.228.148’ is not allowed to connect to this MariaDB server 或“_mysql_connector.MySQLInterfaceError: Access denied for user ‘cyberpanel’@‘112.96.228.148’ (using password: YES) 都是下面的报错

一、前言

在使用python远程连接数据库的时候报错,报错原因是因为该ip没有权限连接这个数据库,报错的图片如下
在这里插入图片描述

1、远程连接服务器mysql数据库的pyhon示例程序

import mysql.connector
# 数据库连接配置
config = {
    'user': 'cyberpanel',  # 你的 MySQL 用户名
    'password': '123456',  # 你的 MySQL 密码
    'host': 'MySQL 服务器的公网 IP',  # MySQL 服务器的公网 IP
    'database': 'hello',  # 要访问的数据库名称
    'port': 3306  # MySQL 的端口号,默认为 3306
}
try:
    # 建立连接
    cnx = mysql.connector.connect(**config)
    cursor = cnx.cursor()
    # 执行查询
    cursor.execute("SELECT * FROM student")
    # 获取查询结果
    for row in cursor.fetchall():
        print(row)
finally:
    # 关闭连接
    cursor.close()
    cnx.close()

二、解决过程

错误信息 “_mysql_connector.MySQLInterfaceError: Access denied for user ‘cyberpanel’@‘112.96.228.148’ (using password: YES)” 表示用户 cyberpanel 试图从 IP 地址 112.96.228.148 访问 MySQL/MariaDB 服务器 154.41.229.92,但是没有成功。这通常是因为以下几个原因:

  1. 密码错误:确保为 cyberpanel 用户提供的密码是正确的。
  2. 用户权限cyberpanel 用户可能没有权限从 IP 112.96.228.148 连接到数据库服务器。
  3. 用户不存在:在指定的主机名或 IP 地址上,可能没有为 cyberpanel 用户创建账户。

解决步骤

1. 确认密码

首先,确保密码是正确的。你已经在配置中指定了密码 'zd'

2. 检查用户权限

你需要检查 cyberpanel 用户是否有权限从 IP 112.96.228.148 连接。这通常需要访问数据库服务器的 shell 或使用具有足够权限的其他数据库账户来检查和修改权限。

查看现有用户和主机

登录到 MySQL/MariaDB 服务器,执行以下命令查看 cyberpanel 用户的权限:

SELECT user, host FROM mysql.user WHERE user='cyberpanel';

这将显示 cyberpanel 用户可以从哪些主机连接。如果没有列出 112.96.228.148 或者通配符 %(表示任何主机),则需要添加相应的权限。

授权从该 IP 连接

如果 cyberpanel 用户没有从 112.96.228.148 连接的权限,你可以通过如下命令授权:

GRANT ALL PRIVILEGES ON hello.* TO 'cyberpanel'@'112.96.228.148' IDENTIFIED BY 'zd';
FLUSH PRIVILEGES;

这将授予 cyberpanel 用户从 IP 112.96.228.148 访问数据库 hello 的权限。

3. 使用 % 通配符

如果你希望 cyberpanel 用户能够从任何 IP 地址连接(请注意这可能会引入安全风险),你可以使用 % 通配符:

GRANT ALL PRIVILEGES ON hello.* TO 'cyberpanel'@'%' IDENTIFIED BY 'zd';
FLUSH PRIVILEGES;
4. 确认 MySQL/MariaDB 配置

确保 MySQL/MariaDB 服务器配置允许远程连接。检查 my.cnfmy.ini 配置文件中的 bind-address 参数,确保它不是设置为 127.0.0.1(这将限制连接到本地主机)。如果需要修改,将其改为 0.0.0.0 或注释掉该行,然后重启 MySQL/MariaDB 服务。

5. 检查网络和防火墙设置

确保没有网络问题或防火墙规则阻止从 112.96.228.148154.41.229.92 的连接。这可能包括服务器端的防火墙规则和/或云服务提供商的网络访问策略。

按照这些步骤操作后,你应该能够解决访问拒绝的问题。如果问题仍然存在,请检查错误日志以获取更多信息,这可能会提供额外的线索。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹落叶花飘荡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值