MySql怎样允许主机被远程访问

本文介绍如何在MySQL中配置服务器以允许特定客户端进行远程访问。通过示例展示了在服务器端进行权限授予的具体命令,并演示了客户端如何使用指定用户名和密码进行远程连接。

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

在MySQL中,客户端想要远程访问服务器,必须在服务器端进行设置,允许被某台机器远程访问。

如:这里客户端192.168.9.141的机器想要远程访问192.168.6.51的服务器。


--在服务器端配置:

mysql>  grant all privileges on *.* to 'dandan'@'192.168.9.141' identified by 'dandan';
Query OK, 0 rows affected (0.00 sec)

--允许192.168.9.141这台机器以dandan/dandan进行连接该服务器。

mysql> select host,user from mysql.user;
+---------------+--------+
| host          | user   |
+---------------+--------+
| 127.0.0.1     | root   |
| 192.168.9.141 | dandan |
| ::1           | root   |
| localhost     |        |
| localhost     | root   |

可以看到在mysql.user里自动生成了一条user为dandan,host为192.168.9.141的记录。

--在客户端进行连接:

C:\Users\dandan>mysql -u dandan -p -h 192.168.6.51
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.6.20-r5436 Source distribution


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>

### 配置 MySQL 允许远程主机连接 #### 创建并配置 MySQL 用户支持远程访问 对于希望使特定用户能够从任何位置访问数据库的情况,在创建或修改现有用户时应指定通配符 `'%'` 表示允许来自任意 IP 地址的连接请求。这可以通过执行 SQL 命令来实现: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123'; ``` 上述命令授予 `root` 用户从任何地方 (`%`) 的完全控制权,并设置了密码为 `root123`[^2]。 #### 修改 MySQL 绑定地址配置 默认情况下,MySQL 可能被配置成仅监听本地接口 (即 `127.0.0.1`) ,这意味着它不会接受外部网络上的连接尝试。要改变这一点,编辑 MySQL 主配置文件 `/etc/my.cnf` 或者对应版本的具体路径下的配置文件,找到如下行: ``` bind-address=127.0.0.1 ``` 将其更改为注释状态或者直接设为 `0.0.0.0` 来让服务监听所有可用网卡上的端口: ``` # bind-address=127.0.0.1 ``` 完成更改后记得重启 MySQL 服务以便应用新的设置[^3]。 #### 更新 root 用户权限范围 如果已经存在想要赋予远程访问能力的账号,则可以直接更新其属性而无需重新创建新用户。通过运行下面这条语句可以达到目的: ```sql UPDATE user SET Host='%' WHERE User='root'; ``` 此操作会将目标用户的可接入源由原来的 localhost 扩展至整个互联网范围内[^4]。 #### Docker 中启动带有远程访问功能的 MySQL 实例 当利用 Docker 容器化技术部署 MySQL 时,除了按照常规方法调整容器内部的服务参数外,还需要确保宿主机防火墙规则开放了相应的 TCP 端口号(通常是 3306),以及正确映射容器内的端口到物理机上。例如: ```bash sudo docker run --name some-mysql \ -e MYSQL_ROOT_PASSWORD=root123 \ -p 3306:3306 \ -d mysql:5.7.44 ``` 之后进入容器并通过 MySQL CLI 工具继续完成必要的安全性和授权设定工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雅冰石

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

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

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

打赏作者

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

抵扣说明:

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

余额充值