如何从公网访问本地的数据库

本文详细介绍了如何从公网访问本地的MySQL数据库,首先确保安装Java 1.7及以上版本和启动MySQL,然后下载并配置holer,通过修改holer配置文件设置access key,启动服务后,使用映射的公网地址即可实现远程访问。

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

本地安装了一个数据库,只能在局域网内访问到,怎样从公网也能访问到本地的数据库呢?本文以MySQL数据库为例,将介绍具体的实现步骤,其方法适用于任何数据库系统。

1. 准备工作

1.1 安装Java 1.7及以上版本

执行命令java -version检查Java安装和配置是否正确。

1.2 安装并启动MySQL数据库

默认安装的MySQL数据库端口是3306

2. 实现步骤

2.1 下载并解压holer软件包

Holer软件包:holer-client.zip

2.2 修改holer配置文件

holer官网上申请专属的holer access key或者使用开源社区上公开的access key信息。 例如申请得到的holer信息如下,这里以此holer信息为例:

---------------------------------------------
Holer Client : holerdemo@gmail.com
Access Key : 8866daebe02846t88s166733595fff5d
----
### 配置本地数据库以允许外部访问 为了实现外部设备能够成功连接到本地的 MySQL 数据库,需要完成以下几个方面的操作: #### 1. 修改 MySQL 用户权限 可以通过修改用户的 `HOST` 字段来指定哪些主机可以访问该用户。如果希望任何 IP 地址都能访问,则可将 `HOST` 设置为 `'%'`。 ```sql USE mysql; UPDATE USER SET HOST = '%' WHERE USER = 'root'; FLUSH PRIVILEGES; ``` 此命令会更新 `USER` 表中的记录,使得根用户可以从任意地址登录[^4]。 #### 2. 使用 GRANT 命令授予权限 除了更改表数据外,还可以直接利用 SQL 的 `GRANT` 功能赋予特定用户远程访问的权利以及相应的操作权限。 ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述语句授予了 root 用户完全控制权,并且这个权利适用于所有的数据库和表格[^3]。 #### 3. 开放必要的络端口 默认情况下,MySQL 监听的是 3306 端口。要让其他机器上的客户端程序能到达这台服务器上的 MySQL 守护进程,可能还需要调整操作系统层面的安全策略,比如 Windows 或 Linux 上开启防火墙入站规则允许 TCP 流量进入 3306 端口。 对于 Windows 平台而言,可通过如下方式启用端口: - 打开高级安全 Windows 防火墙管理器; - 添加新的入站规则,选择特定端口号并填入 3306[^2]。 #### 4. 处理潜在错误消息 当遇到像 `"Host 'DESKTOP-xxxxxP' is not allowed to connect"` 这样的异常提示时,通常是因为当前尝试建立链接的工作站未被授权作为合法来源之一。按照前面提到的方法重新定义好合适的 hosts 后应该就能解决问题[^1]。 另外值得注意的一点是,在实际生产环境中不建议把超级管理员账号暴露于公网之下,而是创建专门用于应用交互的新角色,并仅给予其所需的最小化功能集合[^5]。 ```python import pymysql.cursors connection = pymysql.connect(host='localhost', port=3306, user='your_username', password='your_password', database='test_db') try: with connection.cursor() as cursor: sql_query = "SELECT VERSION();" cursor.execute(sql_query) result = cursor.fetchone() finally: connection.close() print(result) ``` 以上是一个简单的 Python 脚本例子展示怎样通过 PyMySQL 库去查询 MySQL 版本号信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值