【无标题】

标题本地免费云数据库


第一步:准备一台「共享主机」

找一台你们小组里最不容易关机的电脑:

  • 可以是某个人的台式机(下班不关)
  • 或者一台闲置的笔记本(插着电就行)
  • 或者你们已有的内网服务器

如果所有人都是笔记本、每天带回家关机 → 那本方案不适合,告诉我,我换 SQLite+网盘方案


第二步:在那台电脑上安装 Docker

Windows(10/11 专业版/企业版)

  1. 下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
  2. 双击安装,勾选 Use WSL 2 instead of Hyper-V(默认勾了就不用改)
  3. 安装完重启电脑
  4. 启动 Docker Desktop,看到右下角鲸鱼图标就是成功了

⚠️ Windows 家庭版用户:需要先装 WSL 2,步骤稍多,告诉我,我给你单独的命令

Mac(Intel 或 Apple Silicon)

  1. 下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
  2. 拖到 Applications 文件夹
  3. 启动,同意许可,等右下角鲸鱼图标出现

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

看到 Up3306 就说明成功了。


第五步:查一下这台电脑的内网 IP

Windows

bash 复制代码
ipconfig

找到 IPv4 地址 ,通常是 192.168.x.x10.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

相关推荐
KaMeidebaby1 小时前
卡梅德生物技术快报|细菌 FISH 实验 + 流式细胞术:尿路感染活菌快速定量系统实现与数据验证
前端·数据库·其他·百度·新浪微博
昆曲之源_娄江河畔1 小时前
DBGridEh Footer的使用
前端·数据库·delphi·dbgrideh
邮专薛之谦1 小时前
MySQL 完整SQL指令大全(含详细解释+实战示例)
数据库·sql·mysql
YL200404261 小时前
MySQL-进阶篇-SQL优化
数据库·sql·mysql
Irissgwe2 小时前
redis之典型应用-缓存cache
数据库·redis·缓存·缓存击穿·缓存雪崩·redis淘汰策略
Shely20172 小时前
数据库索引
数据库·mysql
我也不曾来过12 小时前
Mysql
数据库·mysql
小陈工2 小时前
Python异步编程进阶:asyncio高级模式与性能调优
开发语言·前端·数据库·人工智能·python·flask·numpy
gQ85v10Db2 小时前
Redis分布式锁进阶第三十一篇
数据库·redis·分布式