使用本机sql连接远程MYSQL时报1103错误(比如windows下连接linux上的mysql)

原因是因为远程MySql的访问权限不允许除本机外访问,我们修改下root用户或你需要登录的用户的权限即可

解决很简单:

直接按照步骤操作即可

修改root的权限

  1. 以权限用户root登录

    mysql -u root -p
    
  2. 选择mysql库

    use mysql
    
  3. 查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

    SELECT'host' FROM USER WHERE USER='root';
    
  4. 修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址

    UPDATE USER SET HOST = '%' WHERE USER ='root';
    
  5. 刷新MySQL的系统权限相关表

    FLUSH PRIVILEGES;
    
### DBeaver 连接 MySQL 报错 Connection Refused 的解决方案 当遇到 `Connection refused` 错误时,通常意味着客户端尝试连接到服务器失败。这可能是由于多种原因引起的,包括但不限于防火墙设置、服务未运行或配置文件中的端口不匹配。 #### 检查 MySQL 服务状态 确认 MySQL 数据库的服务正在运行是非常重要的一步。如果服务没有启动,则任何外部应用程序都无法建立连接。可以通过命令行工具来验证这一点: 对于 Windows 用户来说,在计算机管理界面下的服务列表里查找名为 `MySQL` 或者类似的项并确保其处于“已启动”的状态[^2];而对于 Linux 发行版而言,则可以利用如下所示的 shell 命令获取当前活动进程的信息: ```bash sudo systemctl status mysql.service ``` #### 防火墙配置调整 有时即使数据库本身正常工作,来自操作系统级别的网络防护措施也会阻止远程访问请求。因此建议检查防火墙策略是否允许特定 IP 地址范围内的流量通过指定端口号(默认情况下为3306)。例如,在 CentOS/RHEL 上可执行以下操作以开放相应端口: ```bash [root@LinuxMySQL ~]# sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent [root@LinuxMySQL ~]# sudo firewall-cmd --reload ``` 上述指令会永久性地向公共区域添加一个新的 TCP 规则,并立即应用更改以便即时生效[^3]。 #### 修改 my.cnf 文件绑定地址 另一个常见的问题是 MySQL 默认只监听 localhost 接口上的连接请求,这意味着除非是从同一台机器发起调用,否则都将遭到拒绝。为了使实例能够响应远端客户的查询需求,应当编辑 `/etc/my.cnf.d/server.cnf` (或其他位置依据具体环境而定),并将 bind-address 参数更改为实际使用的网卡IP或是通配符形式 (`bind-address = 0.0.0.0`) 来接受所有接口的数据包传输。 完成修改之后记得重启 mysqld 守护程序让新参数生效: ```bash service mysqld restart ``` #### 测试连接与诊断问题 最后但同样重要的是,在解决了以上可能存在的障碍因素后,应该再次测试能否成功创建新的 session 。可以在终端窗口内输入类似下面这样的语句来进行简单的 ping 测试: ```sql mysqladmin -u root -p -h your_server_ip ping ``` 如果一切顺利的话将会返回 PONG 字样表示握手过程顺利完成[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱学习的大雄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值