设置mysql允许外部IP连接的解决方法

本文介绍如何设置MySQL数据库以允许外部IP地址进行连接。通过修改MySQL的user表,可以为特定用户分配从指定IP地址连接的权限。文章还详细解释了grant语法及Host值的不同指定方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置mysql允许外部IP连接的解决方法

ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器

设置mysql允许外部IP连接的解决方法
mysql默认情况下,只允许localhost连接,如果需要外部IP连接到mysql,需要向mysql数据库里的“user”表里添加相关授权。
例如:让newuser用户使用newpwd密码从IP:192.168.1.3主机链接到mysql服务器

具体步骤:
mysql>GRANT ALL PRIVILEGES ON . TO ‘newuser’@‘192.168.1.3’ IDENTIFIED BY ‘newpwd’ WITH GRANT OPTION;
mysql>flush privileges;

grant语法:
grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to ‘要授权的用户名’@’%’(%表示所有的IP,可以只些一个IP) identified by “密码”;
身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。
在user表Host值的指定方法:
* Host值可以是主机名或IP号,或’localhost’指出本地主机。
* 你可以在Host列值使用通配符字符“%”和“_”。
* Host值’%‘匹配任何主机名,空Host值等价于’%’。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%‘的Host值与所有主机名匹配,而’%.mysql.com’匹配mysql.com域
的所有主机。

### 配置 MySQL允许外部远程连接 为了使 MySQL 数据库能够接受来自外部网络的请求,在 Linux 下需执行一系列特定操作来确保安全性和功能性。 #### 修改 MySQL 配置文件 编辑 `/etc/my.cnf` 或者 `/etc/mysql/my.cnf` 文件,找到 `[mysqld]` 段并加入 `bind-address = 0.0.0.0` 行,这会使得 MySQL 监听所有可用 IP 地址上的连接请求[^2]。 #### 设置防火墙规则 确认服务器端防火墙已打开必要的端口,默认情况下 MySQL 使用的是3306端口。对于基于 Red Hat 的系统可以使用如下命令开启端口: ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` #### 创建具有远程访问权限的新用户 登录到 MySQL 控制台后,可以通过 SQL 命令创建新用户,并授予其适当级别的权限以便可以从任何地方(`%`)进行访问: ```sql CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; FLUSH PRIVILEGES; ``` 上述语句中的 `'newuser'` 和 `'password'` 应替换为实际希望使用的用户名和密码[^3]。 #### 更改身份验证插件(仅限于 MySQL 8.x) 如果遇到由于默认的身份验证方式导致客户端无法正常工作的情况,则可能需要更改 root 用户或其他用户的认证方法至更兼容的形式如 `mysql_native_password`: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_root_password'; FLUSH PRIVILEGES; ``` 这里同样需要注意将 `'your_new_root_password'` 替换为自己设定的安全密码[^4]。 完成以上步骤之后重启 MySQL 服务即可生效这些改动: ```bash sudo systemctl restart mysqld ``` 通过遵循上述指导方针,应该能够让 MySQL 成功地接收到来自互联网其他位置发起的数据通信尝试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值