一、 起因:不仅仅是折腾
寒假在家,为了打破会计专业的局限性,我决定系统性地学习计算机与财务的交叉知识(主要是 Python 数据分析与 SQL)。
在本地电脑折腾环境时,总觉得不够优雅,碰巧遇到服务器商家打折,权衡利弊后决定“斥巨资”拥有一台属于自己的云服务器。
为什么必须是云服务器?
全天候待命: 可以 24 小时运行 Python 脚本,定时抓取宏观经济数据,不用一直开着笔记本。
模拟真实生产环境: 提前体验“本地开发 + 远程部署”的工作流,这对未来就业是加分项。
强迫学习 Linux: 只有在这个黑底白字的界面里摸爬滚打,才能真正理解操作系统。
二、 选购决策:性价比的博弈
我选择的是 火山引擎 的云服务器。在配置选择上,我做了一番计算:
最终决策:选择方案 B(4核 8G)。
虽然贵了 100 块,但这笔投资是值得的。我的规划里,这台服务器不仅要跑 MySQL 数据库 和 Python 脚本,未来还要部署 Halo 博客 和 Metabase (BI看板)。
资源宽裕: 8G 内存能让我从容地部署各种 Docker 容器,不至于为了几百兆内存挤破脑袋。
环境整洁: 使用 Docker 进行管理,资源隔离更干净。
会计视角: 作为会计生,我认为这是对“生产力工具”的必要 资本性支出 (CAPEX),旨在通过长期资产带来未来的技术红利。
三、 搭建过程:从毛坯房到精装修
如果把服务器比作毛坯房,那 Docker 就是精装修的硬装。只有把 Docker 装好了,后续安装数据库、博客就像买家具一样简单。
1. 安装 Docker
首先,更新服务器的软件列表(相当于刷新应用商店):
apt update && apt upgrade -y
curl -fsSL https://get.docker.com | -s docker --mirror Aliyun
[学习笔记] 这行命令里的参数是什么意思?
-f(fail): 连接失败时不显示 HTTP 错误,直接静默失败。-s(silent): 静默模式,不显示进度条和错误信息。-S(show error): 如果 -s 模式下发生错误,显示报错信息。-L(location): 如果遇到服务器重定向,自动跟随。
设置 Docker 开机自启,防止服务器重启后服务中断:
systemctl start docker # 启动
systemctl enable docker # 设置开机自启
检查安装成果:
docker --version
# 输出:Docker version 27.x.x... 说明安装成功
2. 配置 Docker 国内镜像加速
由于网络原因,直接拉取镜像非常慢。我们需要配置国内加速源:
# 1. 创建配置文件夹
sudo mkdir -p /etc/docker
# 2. 写入加速镜像配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
EOF
# 3. 重载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 安装 MySQL 8.0
这是我数据中心的核心资产。使用 Docker 安装只需一行命令:
docker run -d \
--name mysql-learn \
-p 3306:3306 \
-v mysql_data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Root123456 \
mysql:8.0
-d: 后台静默运行。-p 3306:3306: 把容器的 3306 端口暴露给服务器,否则外网连不上。-v: 数据挂载。即使删了容器,我的账本数据还在硬盘里。
等待几十秒后,输入 docker ps,看到 MySQL 处于 Up 状态,即宣告部署成功!

四、 客户端连接:打通最后一公里
我在电脑上安装了 DBeaver 来连接服务器的数据库。


但在第一次连接时,遇到了一个经典报错:
Public Key Retrieval is not allowed
这是因为 MySQL 8.0 默认的安全验证机制变化导致的。
解决方法:

在 DBeaver 的连接设置页面,点击 “驱动属性 (Driver properties)”。
找到
allowPublicKeyRetrieval这一项。将其值改为
true。再次点击“测试连接”,显示“已连接”!
结语: 至此,我的云端数据地基已经打好。接下来,我将尝试用 Python 编写自动化脚本,将抓取的财务数据源源不断地存入这个数据库中。