标题本地免费云数据库
第一步:准备一台「共享主机」
找一台你们小组里最不容易关机的电脑:
- 可以是某个人的台式机(下班不关)
- 或者一台闲置的笔记本(插着电就行)
- 或者你们已有的内网服务器
如果所有人都是笔记本、每天带回家关机 → 那本方案不适合,告诉我,我换 SQLite+网盘方案
第二步:在那台电脑上安装 Docker
Windows(10/11 专业版/企业版)
- 下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
- 双击安装,勾选 Use WSL 2 instead of Hyper-V(默认勾了就不用改)
- 安装完重启电脑
- 启动 Docker Desktop,看到右下角鲸鱼图标就是成功了
⚠️ Windows 家庭版用户:需要先装 WSL 2,步骤稍多,告诉我,我给你单独的命令
Mac(Intel 或 Apple Silicon)
- 下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
- 拖到 Applications 文件夹
- 启动,同意许可,等右下角鲸鱼图标出现
Linux(Ubuntu/Debian/CentOS)
bash
# 一行命令安装
curl -fsSL https://get.docker.com | sudo sh
# 把当前用户加入 docker 组(这样不用每次 sudo)
sudo usermod -aG docker $USER
# 重新登录终端,或执行 newgrp docker
第三步:一条命令启动 MySQL(完整版)
打开那台电脑的终端(Windows 用 PowerShell 或 cmd,Mac/Linux 用 Terminal),复制下面整段执行:
bash
docker run -d \
--name team-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=team123456 \
-v team_mysql_data:/var/lib/mysql \
--restart always \
mysql:8.0
如果 Mac Apple Silicon(M1/M2/M3),用下面这个(兼容模式):
bash
docker run -d \
--name team-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=team123456 \
-v team_mysql_data:/var/lib/mysql \
--restart always \
mysql:8.0 --platform linux/amd64
执行后你会看到: 一串长长的字符串(容器 ID),比如 7a3f8d9e2b1c... → 说明启动成功了。
第四步:验证 MySQL 是否跑起来了
bash
docker ps
你应该看到:
CONTAINER ID IMAGE STATUS PORTS
xxxxxx mysql:8.0 Up 2 minutes 0.0.0.0:3306->3306/tcp
看到 Up 和 3306 就说明成功了。
第五步:查一下这台电脑的内网 IP
Windows
bash
ipconfig
找到 IPv4 地址 ,通常是 192.168.x.x 或 10.x.x.x
Mac/Linux
bash
ifconfig
# 或者
ip addr
找到 inet 192.168.x.x 这样的行
假设你找到的 IP 是 192.168.1.100(记下来)
第六步:测试本地能否连上
在同一台电脑上,执行:
bash
docker exec -it team-mysql mysql -uroot -pteam123456
如果看到 mysql> 提示符,说明数据库正常运行。
输入 exit 退出。
第七步:让小组其他人连接
首先要确认:防火墙是否开放了 3306 端口?
Windows(最常遇到问题):
- 打开「Windows 安全中心」→「防火墙和网络保护」→「高级设置」
- 点「入站规则」→「新建规则」
- 规则类型:端口 → 下一步
- 协议:TCP,特定本地端口:
3306→ 下一步 - 允许连接 → 下一步
- 全部勾选 → 下一步
- 名称写
MySQL 3306→ 完成
Mac:默认防火墙不拦截,一般不用动
Linux:
bash
sudo ufw allow 3306/tcp
发给群里的连接信息:
数据库类型:MySQL
主机:192.168.1.100 (换成你实际查到的 IP)
端口:3306
用户名:root
密码:team123456
其他人用 Navicat / DBeaver / DataGrip / MySQL Workbench 都能连。
第八步:创建一个只读账号(可选,但推荐)
连上数据库后执行:
sql
-- 创建一个只能查、不能改的账号,适合给只看数据的同事
CREATE USER 'readonly'@'%' IDENTIFIED BY 'readonly123';
GRANT SELECT ON *.* TO 'readonly'@'%';
FLUSH PRIVILEGES;
然后你可以把 readonly / readonly123 这套账号发群里,比较安全。
常见问题和处理
| 问题 | 怎么办 |
|---|---|
| 别人连不上,提示 10060/10061 | 检查共享主机的防火墙是否开放 3306 |
| 别人连不上,提示 1130 | MySQL 默认 root 只能 localhost 连,需要执行授权:GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'team123456'; FLUSH PRIVILEGES; |
| 关机重启后,容器还在吗? | 在的,因为有 --restart always,电脑重启后 MySQL 会自动启动 |
| 数据会丢吗? | 不会,因为用了 -v team_mysql_data,数据存在 Docker 卷里 |
| 想删除重来? | docker stop team-mysql && docker rm team-mysql,数据还在卷里;想彻底删数据:docker volume rm team_mysql_data |