多Android设备搭建数据库架构:单设备为Database Server,其余作客户端
Android设备搭建数据库服务器并实现多客户端连接方案
服务器端配置(指定Android设备)
方案一:通过Termux安装成熟数据库引擎(推荐)
Termux是Android上的终端模拟器,可搭建完整Linux环境,适合部署标准数据库服务:
- 安装Termux后,更新系统包:
pkg update && pkg upgrade -y - 选择安装数据库(以MariaDB为例,兼容MySQL,支持远程连接):
pkg install mariadb -y - 初始化数据库:
mysql_install_db - 启动数据库服务:
mysqld - 配置远程访问权限:
- 进入MySQL控制台:
mysql -u root - 创建允许远程连接的用户(替换
your_user和your_pass为自定义内容):GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_pass'; FLUSH PRIVILEGES; - 退出控制台:
exit
- 进入MySQL控制台:
- 获取服务器局域网IP:在Termux中执行
ip addr,找到WiFi/热点对应的IP(通常为192.168.x.x格式)。
方案二:轻量自定义服务(适合简单场景)
若仅需基础数据交互,可基于Room数据库+Socket实现简易服务,但稳定性和功能不及标准数据库引擎,仅推荐小范围测试使用。
客户端设备连接
方式一:使用现成数据库客户端APP
在客户端设备上安装对应数据库的客户端工具(如MariaDB Client),输入以下信息即可连接:
- 服务器IP:上述获取的局域网IP
- 端口:默认3306(MariaDB/MySQL)、5432(PostgreSQL)
- 用户名/密码:服务器端配置的账号信息
- 目标数据库名:提前在服务器端通过
CREATE DATABASE your_db;命令创建的数据库
方式二:自定义Android应用连接
通过JDBC实现应用内连接,步骤如下:
- 在
build.gradle中添加数据库驱动依赖(以MariaDB为例):implementation 'org.mariadb.jdbc:mariadb-java-client:3.3.3' - 在
AndroidManifest.xml添加网络权限:<uses-permission android:name="android.permission.INTERNET" /> - 编写连接代码(需在子线程执行,避免阻塞主线程):
String dbUrl = "jdbc:mariadb://192.168.1.100:3306/your_db"; String username = "your_user"; String password = "your_pass"; new Thread(() -> { try { Connection conn = DriverManager.getConnection(dbUrl, username, password); // 执行查询、插入等数据库操作 conn.close(); } catch (SQLException e) { e.printStackTrace(); } }).start();
关键注意事项
- 确保所有设备处于同一局域网(WiFi或服务器设备开启热点),跨公网连接需额外配置端口映射,非测试场景不推荐。
- 服务器设备需保持唤醒状态,可开启系统“保持唤醒”设置,或在Termux中执行
termux-wake-lock命令锁定唤醒。 - 安全优化:避免使用
'%'允许所有IP连接,可替换为客户端设备的具体IP;使用强密码,定期更新权限配置。
内容的提问来源于stack exchange,提问作者Ahmad Noor
相关产品推荐
相关产品推荐

