mysql8 远程连接
时间: 2025-07-09 09:03:37 浏览: 11
### 配置 MySQL 8 实现远程连接
#### 修改用户权限
为了使 MySQL 数据库能够接受来自任何主机的连接请求,在 `mysql` 用户表中需将特定用户的 `Host` 字段由默认值 `localhost` 更改为 `'%'`,这表示允许该账户从任意 IP 地址访问数据库[^3]。
```sql
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
```
上述 SQL 命令更新了 root 用户的信息,使其可以从网络上的任一位置发起连接尝试;最后通过执行 FLUSH PRIVILEGES 来刷新授权表以应用更改。
#### 授予必要的权限给新创建或已存在的用户
对于希望赋予某位用户完全控制权的情况,可以利用 GRANT 语句来完成这一操作:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password_here' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
此命令授予指定用户 (`root`) 对所有数据库(`*.*`) 的全部权限,并设置了新的身份验证凭证。同样地,这里也调用了 FLUSH PRIVILEGES 确保变更立即生效。
#### 编辑 my.cnf 文件解除绑定地址限制
通常情况下,默认配置会使得 MySQL 只监听本地回环接口 (127.0.0.1),因此还需要编辑 `/etc/mysql/my.cnf` 或者其他相应路径下的配置文件找到 `[mysqld]` 下面的一行:
```ini
bind-address = 127.0.0.1
```
将其更改为服务器的实际公网IP或者是通配符形式即 `0.0.0.0` ,以便让 MySQL 监听所有的网卡端口从而接收外部传入的数据包[^1].
#### 调整防火墙规则开放所需端口号
如果操作系统启用了防火墙,则还需确保放行 MySQL 默认使用的 TCP/UDP 协议第 3306 号端口。例如在 Ubuntu 上可以通过 ufw 工具添加一条规则:
```bash
sudo ufw allow 3306/tcp
```
这条指令告诉 UFW(Uncomplicated Firewall) 允许外界经由TCP协议向本机发送至目标端口为 3306 的数据流通行无阻[^2].
#### 最终确认与测试
做完以上几步之后应当重启 MySQL 服务以及重新加载防火墙策略使之变化得以体现出来。此时应该已经成功搭建好了支持远端接入功能的服务环境,可借助客户端工具像 Navicat、DBeaver 或者命令行方式来进行最终的功能检验。
阅读全文
相关推荐















