这事儿说起来,得先交代个背景。2008年,我刚入行做 IT 运维,整天跟各种服务器软件打交道。Oracle 11g 刚出来没多久,SQL Server 2008 也才发布,但最让我头疼的,反而是那些老掉牙的数据库——比如 MySQL 5.0,或者更老的 Access。那时候装机,硬盘才 80 GB,内存普遍 1 GB,装个数据库得小心翼翼,生怕把系统搞崩了。现在回想,那会儿装数据库真像走钢丝,每一步都得算清楚。今天要聊的,就是 2008 年那会儿,怎么一步步把数据库装上去——不是官方文档式的枯燥步骤,而是我当年踩过的坑、试过的土办法,还有后来才明白的道理。

先说准备工作。2008 年的硬件环境跟现在没法比,CPU 主频普遍在 2.0 GHz 左右,内存条是 DDR2 的,价格还贵得离谱。装数据库之前,你得先确认操作系统:Windows Server 2003 是主流,Windows XP 也能凑合,但千万别用 Vista,那玩意儿兼容性差得离谱。我有个同事,非要在 Vista 上装 SQL Server 2005,结果装到一半蓝屏,折腾了两天才发现是系统不认那个补丁。所以,第一件事是备份系统——用 Ghost 做个镜像,或者至少把 C 盘重要文件拷出来。数据库安装程序经常要写注册表、装 .NET Framework 2.0、Windows Installer 4.5 等前置组件,一旦中途报错,系统可能就崩了。我那会儿还专门准备了个 U 盘,里面放了这些组件的离线安装包,省得联网下载慢得让人抓狂。
接下来是下载安装包。2008 年网速普遍是 2 M ADSL,下载一个几百兆的安装包得花好几个小时。MySQL 5.0 社区版是免费的,但官方只提供源码和二进制包,Windows 版得去第三方网站找。我上过当——有个叫“绿色软件联盟”的站点,下载的 MySQL 安装包自带病毒,装完后数据库根本跑不起来,倒把系统文件改了。后来学乖了,只从官方镜像站下载,比如 Oracle 的 OTN 或者 SourceForge 的镜像。SQL Server 2008 更麻烦,有 Express、Standard、Enterprise 版,光安装盘就得 3 张 DVD。我记得有次帮客户装企业版,下载整整一天,结果解压时发现文件校验值不对,又重新下载。现在想想,那会儿真该买正版光盘,但盗版盘质量参差不齐,装到一半文件损坏是常事。所以,我的建议是:宁可多花半小时验证哈希值,也别省这一步。
装 MySQL 5.0 的时候,有个关键点——选对安装路径。C 盘空间通常只有 10 GB,系统文件、虚拟内存、临时文件都占着,装个数据库进去,没几天就满了。我习惯装到 D 盘,比如 D:MySQL,但要注意路径不能有中文。有次客户非要装到 “D:数据库”,结果服务死活启动不了,查了半天才发现是路径编码问题。配置实例时,默认字符集是 latin1,中文环境得改成 GBK 或者 UTF8。我有个血泪教训:有次没改字符集,导入的客户数据全是乱码,花了大半夜用 mysqldump 导出、改编码再导入。端口默认 3306,但得确认没被占用——用 netstat -ano 查一下。还有,root 密码别设得太简单,我见过有人设成 “123456”,结果被扫描到端口,数据库直接被删光,甚至留下勒索信和比特币地址。
SQL Server 2008 的安装更折腾。先得装 .NET Framework 3.5,那玩意儿在 Vista 和 Server 2008 上自带,但 XP 上得手动装。我有次在 XP 上装 SQL Server,卡在 “准备安装” 界面半小时,后来发现是没装 SP3 补丁。安装过程中,有个 “功能选择” 界面,别一股脑全选——Analysis Services、Reporting Services 这些功能如果不用,就别装,它们会占用大量内存,还可能导致服务冲突。我记得有次帮客户装,选了全部功能,结果 Analysis Services 和数据库引擎抢端口,服务起不来,只能卸载重装,只保留 “数据库引擎服务” 和 “管理工具”。实例名称也别乱起,默认是 MSSQLSERVER,但如果装多个实例,得用实例名区分。我见过有人叫 “TEST1”,后来忘了是哪台机器的实例,只能一个个试。
装 Oracle 11g 的时候,那才叫折磨。先得运行 “Oracle Universal Installer”,然后检查系统先决条件。2008 年的机器,内存 1 GB 根本不够——Oracle 最低要求 1.5 GB,实际跑起来需要 2 GB 以上。我有次在 1 GB 内存的机器上装,安装界面卡得像幻灯片一样,强制退出后,注册表只写了一半,系统直接蓝屏。后来学乖了,装之前先关掉所有不必要的服务,比如打印机共享、远程桌面。Oracle 的安装包有 7 个压缩文件,必须按顺序解压,文件名不能改。我有个同事图省事只解压了第一个,结果装到一半提示缺文件,只能重新来。配置监听器时,默认端口 1521,但要确认防火墙没有拦住。有次客户内网策略严格,1521 端口被禁,我改成 1522,再让网络管理员放行,才搞定。
装完后,第一件事不是急着建表,而是做配置优化。MySQL 的 my.ini 里,有个关键参数——maxconnections。默认是 100,2008 年的网站访问量普遍不大,50 就够,用来省内存。还有 innodbbufferpoolsize,默认 8 M,得调到物理内存的 70% 左右——比如 1 GB 内存,设成 700 MB。但别设太大,否则系统其他程序没内存用。SQL Server 的配置更复杂,得调 “最大服务器内存” 限制,默认是 “未配置”,等于把所有内存都吃掉。我见过一个案例,SQL Server 把 2 GB 内存全占满,导致操作系统虚拟内存不足,直接宕机。所以装完后第一件事,打开 SSMS,右键服务器属性,把内存限制在 1.5 GB 左右。Oracle 的 SGA 和 PGA 也要调,但新手别乱动,我当年调错参数,数据库直接起不来,只能从备份恢复。
说说备份和测试。2008 年那会儿没有云备份,全靠手动。我习惯装完数据库后,立刻做一次完整备份:MySQL 用 mysqldump 导出所有库,SQL Server 用 SSMS 的 “备份” 功能,Oracle 用 expdp 导出。备份文件存到另一个盘,比如 E 盘。然后建个测试表,插入几条记录,再查询一下,确认能正常读写。别忘了测试远程连接。我有个客户,装完数据库后,本地能连,远程死活连不上。查了半天,发现是防火墙没开端口——Windows 防火墙默认只允许本地连接。在 “入站规则” 里加了 1433 端口(SQL Server)或 3306 端口(MySQL),才搞定。2008 年安全策略没有现在严格,但该做的还是得做。
现在回想,2008 年装数据库,拼的不是技术,而是耐心。硬件差、网速慢、文档不全,每一步都可能踩坑。但正是这些坑,让我学会了怎么读错误日志、怎么查系统配置、怎么跟客户解释 “这不是电脑中毒了,是服务没启动”。后来云数据库普及,装个 MySQL 点几下鼠标就行,但我总觉得少了点成就感。那时候装好一个数据库,就像亲手搭了个房子,虽然简陋,但踏实。所以,如果你现在还在 2008 年的环境里折腾,别烦躁——这些经验以后都是你的底气。


