1130 - Host “WIN-CA4FHERGO9J‘ is not allowed to connect to this MySQL server

1、知识小课堂

1.1 Mysql

  • MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择MySQL作为网站数据库。同时它也提供了用于管理、检查、优化数据库操作的管理工具。

1.2 数据库还有哪些

1.2.1 SQL Server

  • Microsoft SQL Server是一个适用于Windows操作系统的关系型数据库管理系统,适用于各种规模的应用,包括Web应用、桌面应用和大型企业级应用。SQL Server的优点包括提供图形化的用户界面、支持大量的用户、提供可靠的性能、支持多种存储引擎以及提供强大的查询功能和安全性。然而,SQL Server也存在一些缺点,例如只能在Windows操作系统上运行、对于一些高级功能需要购买商业版本。

1.2.2 Oracle

  • Oracle是一个商业的关系型数据库管理系统,适用于大型企业级应用和需要高度可靠、高性能的应用。Oracle的优点包括支持大量用户、提供高级性能和可扩展性、支持多种存储引擎、提供强大的查询功能和安全性以及与许多操作系统和编程语言的兼容性。然而,Oracle也存在一些缺点,例如价格较高、需要购买额外的软件包来实现某些功能。

1.3 常见的数据库连接工具

  • Navicat:支持Windows、Linux、MacOS,支持sqlite3、mysql,但收费且比较贵,使用流畅。
  • DBeaver:支持Windows、Linux、MacOS,支持sqlite3、mysql,有社区版和企业版本,社区版满足需求。
  • DataGrip:开发Idea、goland、clion、pycharm等工具的JetBrins公司开发的。
  • phpMyAdmin:基于Web的MySQL管理工具,用PHP编写。

2、问题详细

2.1 错误分析

在这里插入图片描述

  • 当使用工具连接远程MySQL数据库时提示:1130-Host is not allowed to connect to this MySQL server错误!出现该错误是原因是MySQL配置了不支持远程连接所造成的。
  • MySQL默认情况下是允许远程连接的,但出于安全考虑,一些系统管理员可能会禁用远程连接。如果您无法通过远程连接连接到MySQL服务器
  • 应先确保防火墙的3306端口已经配置成功
  • 检查MySQL服务器的端口号是否正确。默认情况下,MySQL使用3306端口。
  • 检查您的网络连接是否正常。尝试使用ping命令测试与MySQL服务器的连通性。
  • 如果您使用的是用户名和密码进行连接,请确保用户名和密码正确。
  • 如果没有以上问题,请看下面的介绍。

2.2 错误解决

1、在安装Mysql数据库的主机上登录root用户:

mysql -u root -p密码

在这里插入图片描述

2、依次执行如下命令:

use mysql;
  
select host from user where user='root';

在这里插入图片描述

  • 由图可知,连接方式仅为Localhost,没有配置远程连接的方式,因此,通过连接工具进行远程连接会报错,这也是上面错误的来源。
  • 那么这个问题怎么解决呢?很简单,配置所有IP可以连接就行
  • 根据下面文档进行

3、将Host设置为通配符

update user set host = '%' where user ='root';

在这里插入图片描述

4、刷新

flush privileges;

在这里插入图片描述

  • 刷新之后,再次查看可以连接的host,多了一个”%“这样就配置好了连接方式,再次尝试连接即可。

5、再次测试成功连接

在这里插入图片描述

请添加图片描述

这段代码运行的结果一般是 MySQL 数据库的主从复制状态信息中包含 "running" 的行。具体来说,它首先通过执行 MySQL 的 `show slave status` 命令获取 MySQL 数据库的主从复制状态信息,然后使用 grep 命令过滤出包含 "running" 字符串的行。 如果 MySQL 数据库的主从复制正常运行,那么运行这段代码应该会输出如下内容(具体输出格式可能会有所不同): ``` *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: localhost Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 348 Relay_Log_File: mysqld-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 348 Relay_Log_Space: 154 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: 0000-00a2-0000-0000-000000000001 Master_Info_File: /usr/local/mysql/data/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 ``` 其中,最后一行信息中可能会包含 "running" 字符串,表示主从复制正在运行。如果 MySQL 数据库的主从复制没有运行或者出现异常,那么运行这段代码不会输出任何信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦幻蔚蓝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值