简介:这份资源是面向数据库初学者与运维人员的 SQL Server 2005 安装图解教程,重点解决版本选择、环境准备与补丁升级等入门难题。内容围绕 Enterprise、Standard、Workgroup、Developer、Express 五个版本的适用场景展开,并说明软件平台对 Windows Installer 3.1、MDAC 2.8 SP1 及 .NET Framework 2.0 的要求,同时提示硬件门槛较 SQL Server 2000 有所提高。教程还覆盖与 SQL Server 2000 共存时的实例设置、安装前关闭杀毒软件等注意事项,并给出 SQL Server 2005 SP3 补丁(如 KB955706)的图文安装过程。资源包为 1 个 docx 文档,约 617KB,以图文步骤形式呈现,便于对照操作。目前已有 363 人学习,适合需要快速完成 SQL Server 2005 部署与补丁升级的读者参考。
1. 从一台老工控机说起:为什么还有人要装 SQL Server 2005
上周帮一个做产线数据采集的朋友收拾一台老工控机,系统是 Windows XP Embedded,跑着一套十几年前写的 MES 采集程序,数据库后端锁死在 SQL Server 2005。机器硬盘挂了,备份只有一份.bak文件,新机器装不上高版本 SQL Server,因为那套程序用的是旧版 TDS 协议和image字段存二进制,迁移成本比重新买台工控机还高。最后只能老老实实找安装介质,重装 SQL Server 2005,再打上 SP3 补丁。
这就是 sql2005安装 这件事在今天的真实场景:不是你想用,是某个老系统、老设备、老代码把你按在那儿了。SQL Server 2005 本身在 2016 年就结束了扩展支持,微软官方下载页早就撤了,但工控、医疗设备、老 ERP 的存量还在。这篇文章不讲它有多老,只讲怎么把它装上去、SP3 补丁怎么打、装完怎么验证、以及我踩过的那些坑。适合手里有老系统要维护、需要复现安装环境、或者单纯想搞明白这套流程的从业者。
2. 装之前先把环境理清楚:版本、组件与前置依赖
2.1 版本选择:Express、Developer 还是 Standard
SQL Server 2005 的安装介质分好几个版本,选错了后面全是麻烦。常见的有 Express(免费,4GB 库上限,1GB 内存)、Developer(功能全,但不能商用)、Standard/Enterprise(商用,按 CPU 授权)。工控机上跑采集程序,数据量不大,Express 通常够用;但如果程序里用了 SQL Agent 作业或者数据库镜像,Express 直接不支持,装到一半功能缺失,程序报错你还得重来。
判断方法很简单:看老程序的连接字符串和功能依赖。如果它调用了msdb里的作业、用了Database Mail、或者依赖SSIS,那就必须上 Developer 或 Standard。我一般会先在测试机上装 Developer 版跑一遍,确认功能都正常,再决定生产用哪个版本。
| 版本 | 库大小上限 | 内存上限 | SQL Agent | 适用场景 |
|---|---|---|---|---|
| Express | 4GB | 1GB | 无 | 小型采集、单机应用 |
| Developer | 无 | OS 上限 | 有 | 开发测试、功能验证 |
| Standard | 无 | OS 上限 | 有 | 生产环境、商用 |
2.2 前置依赖:IIS、.NET 与 MSXML
SQL Server 2005 安装程序会检查一堆前置组件,缺一个就卡在“先决条件检查”那一步。最常见缺的是:
- IIS:如果你要装 Reporting Services,必须提前装好 IIS 和 ASP.NET。不装 RS 的话可以跳过。
- .NET Framework 2.0:安装程序自带,但有些精简版系统里被裁掉了,需要手动补。
- MSXML 6.0:很多老系统里没有,安装程序会提示,直接点“安装”让它自己装就行。
- SQL Server Native Client:如果机器上已经有旧版,先卸干净,否则安装程序会报“已安装更高版本”然后退出。
我一般会在装之前跑一遍regedit,检查HKLM\SOFTWARE\Microsoft\Microsoft SQL Server下有没有残留的实例键。有的话先备份再删,不然新装实例名冲突,装完服务起不来。
2.3 安装介质与补丁的匹配关系
SQL Server 2005 的补丁是累积的,SP3 包含了 SP1、SP2 的所有修复。但注意:SP3 补丁包分 x86 和 x64 两个版本,装错了会提示“不是有效的 Win32 应用程序”或者直接拒绝安装。怎么看系统架构?在命令行跑:
echo %PROCESSOR_ARCHITECTURE%输出x86就是 32 位,AMD64就是 64 位。工控机大多是 x86,但有些新换的主板跑的是 x64 系统,别想当然。
另外,SP3 补丁包有“Express 版专用”和“通用版”的区别。Express 版补丁只能打在 Express 实例上,通用版可以打在 Developer/Standard 上。下错了补丁,安装程序会报“此补丁不适用于当前实例”。
3. 安装 SQL Server 2005 主程序:从挂载到实例配置
3.1 启动安装与先决条件检查
把安装介质挂载或解压后,运行servers\setup.exe。如果是 ISO,Windows 10 以上可以直接双击挂载;老系统用虚拟光驱工具加载。启动后选“服务器组件、工具、联机丛书和示例”,接受许可条款,然后进入先决条件检查。
这一步会列出缺失的组件。不要跳过,尤其是“IIS 功能要求”和“ASP.NET 版本注册要求”。如果只是装数据库引擎,这两项可以忽略;但如果要装 Reporting Services,必须先把 IIS 装好,否则后面 RS 配置会失败。
检查通过后,输入产品密钥(Developer 版可以跳过),填实例名。默认实例就是机器名,命名实例自己起一个,比如SQL2005。我一般用命名实例,方便和后来装的高版本共存。
3.2 服务账户与排序规则的选择
服务账户这一步很多人直接下一步,但这里有个坑:SQL Server 2005 默认用内置账户Local System或Network Service,在域环境里访问网络共享会出问题。如果老程序需要访问网络路径或者跨库查询,建议改成域用户账户,并授予“作为服务登录”权限。
排序规则(Collation)选Chinese_PRC_CI_AS,这是简体中文环境最常用的。如果老程序的数据库备份是从别的服务器恢复的,排序规则必须一致,否则恢复时报“排序规则冲突”。不确定的话,先问清楚原服务器的排序规则,或者用SELECT SERVERPROPERTY('Collation')在旧库上查一下。
-- 在旧服务器上查排序规则 SELECT SERVERPROPERTY('Collation') AS ServerCollation;3.3 身份验证模式与管理员指定
身份验证模式选“混合模式”,并设置sa密码。纯 Windows 模式在工控环境里很麻烦,老程序经常用 SQL 账户连接。sa密码设复杂点,但别用特殊字符,有些老客户端驱动对特殊字符支持不好。
“指定 SQL Server 管理员”这一步,把当前系统管理员和sa都加进去。装完后如果发现连不上,先用 Windows 身份验证进去,检查sa是否被禁用。
3.4 安装完成后的服务检查
安装完成后,打开“服务”管理器,确认以下服务状态:
SQL Server (实例名):必须运行SQL Server Agent (实例名):Express 版没有,其他版本必须运行SQL Server Browser:如果用了命名实例,必须运行,否则客户端连不上
如果服务启动失败,先看事件查看器里的应用程序日志,常见原因是权限不足或端口被占用。SQL Server 2005 默认用 TCP 1433 端口,命名实例用动态端口,靠 Browser 服务解析。
-- 检查端口监听状态 netstat -ano | findstr :1433如果没有输出,说明 TCP/IP 协议没启用。打开“SQL Server 配置管理器”,在“网络配置”里把 TCP/IP 启用,重启服务。
4. 打 SP3 补丁:顺序、参数与回滚准备
4.1 补丁安装前的备份动作
打补丁之前,必须备份系统盘和数据库文件。SP3 安装过程中会替换大量系统 DLL 和 SQL Server 二进制文件,万一失败,回滚很麻烦。我一般会做两件事:
- 用系统自带的备份工具创建一个还原点(如果是 Windows 7 以上)。
- 把
MSSQL\Binn目录整个复制一份到别的盘。
数据库文件本身不会被动,但master、msdb、model这三个系统库会被升级,升级失败会导致实例起不来。
4.2 SP3 补丁的安装参数与静默模式
SP3 补丁包解压后,运行setup.exe。图形界面一路下一步就行,但如果是批量部署或者远程操作,可以用静默模式:
-- 静默安装 SP3,不重启 SQLServer2005SP3-KB955706-x86-ENU.exe /quiet /norestart参数说明:
/quiet:无交互,适合脚本调用/norestart:装完不自动重启,手动控制重启时机/allinstances:给所有实例打补丁,不指定的话只打默认实例
如果是命名实例,需要加/instancename=SQL2005。不加的话补丁会找不到实例,报“没有可升级的实例”。
4.3 补丁安装后的版本验证
装完补丁,用 SQL 查询版本号确认:
SELECT @@VERSION;SP3 的版本号应该是9.00.4035或更高。如果还是9.00.1399(RTM 版本),说明补丁没打上。常见原因是补丁包和实例版本不匹配,或者安装过程中被中断了。
-- 更详细的版本信息 SELECT SERVERPROPERTY('ProductVersion') AS Version, SERVERPROPERTY('ProductLevel') AS ServicePack, SERVERPROPERTY('Edition') AS Edition;ProductLevel显示SP3才算成功。
4.4 补丁回滚的后悔药
SP3 装完如果发现老程序不兼容,可以回滚。控制面板里找到“SQL Server 2005 SP3”卸载,或者用补丁包自带的/uninstall参数。但注意:回滚只能回到打补丁前的状态,如果中间又装了其他组件,回滚可能失败。所以打补丁前的那份Binn目录备份就是后悔药,实在不行直接覆盖回去。
5. 避坑与排查:装不上、连不上、跑不起来
5.1 安装程序卡在“先决条件检查”不动
现象:进度条走到“先决条件检查”就停住,或者报“无法获取系统配置”。
原因:最常见的是 WMI 服务损坏,或者系统里的 MSXML 版本冲突。老工控机装过各种采集软件,MSXML 被替换过好几轮。
解决:在命令行跑winmgmt /verifyrepository,如果报“不一致”,跑winmgmt /salvagerepository修复。MSXML 的话,去控制面板卸载所有 MSXML 4.0/6.0,重新装一遍微软官方版。
5.2 安装到一半报“无法写入注册表项”
现象:安装进度到 70% 左右,弹窗报“无法写入HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\...”。
原因:当前账户不是管理员,或者注册表权限被安全软件锁了。有些工控机上装了老版杀毒软件,会拦截注册表写入。
解决:右键setup.exe以管理员身份运行;临时关闭杀毒软件;如果还不行,用regedit手动给Microsoft SQL Server键授予当前用户完全控制权限。
5.3 装完连不上,报“无法连接到服务器”
现象:SSMS 里输入localhost或.\SQL2005,报“无法连接,错误 26”。
原因:TCP/IP 协议没启用,或者 SQL Browser 服务没启动。命名实例必须靠 Browser 解析端口。
解决:打开 SQL Server 配置管理器,启用 TCP/IP,重启 SQL Server 服务;启动 SQL Browser 服务;防火墙放行 1433 和 1434 端口。
-- 放行防火墙端口(命令行) netsh advfirewall firewall add rule name="SQL2005" dir=in action=allow protocol=TCP localport=1433 netsh advfirewall firewall add rule name="SQLBrowser" dir=in action=allow protocol=UDP localport=14345.4 SP3 补丁装完,老程序报“不支持的身份验证”
现象:补丁前程序能连,补丁后报“用户登录失败”或“不支持的身份验证模式”。
原因:SP3 加强了安全性,默认禁用了旧版 TLS 和弱加密算法。老程序如果用的是 SQL 身份验证但密码加密方式太老,会被拒绝。
解决:在 SQL Server 配置管理器里,把“强制加密”关掉;如果程序用的是sa,检查sa是否被禁用,用 Windows 身份验证进去启用它。
-- 启用 sa 账户 ALTER LOGIN sa ENABLE; ALTER LOGIN sa WITH PASSWORD = '新密码';5.5 恢复备份时报“排序规则冲突”
现象:从旧服务器恢复.bak文件,报“无法解决 equal to 操作的排序规则冲突”。
原因:新装的 SQL Server 排序规则和备份源不一致。
解决:重建实例,排序规则选和源一致;或者用ALTER DATABASE改排序规则,但改完可能影响现有数据,慎用。
-- 查看当前数据库排序规则 SELECT name, collation_name FROM sys.databases;6. 装完只是开始:让老实例跑稳的几个习惯
装完 SQL Server 2005 和 SP3,能连上、能恢复备份,只是第一步。老实例跑在工控机上,最怕的是磁盘满、日志暴涨、内存泄漏。我一般会做三件事:
第一,把数据库恢复模式从“完整”改成“简单”,除非程序明确要求日志备份。工控机磁盘小,完整模式下一周就能把日志撑爆。
ALTER DATABASE 你的库名 SET RECOVERY SIMPLE;第二,设置自动收缩和定期重建索引。老程序写数据频繁,索引碎片涨得快,查询越来越慢。用 SQL Agent 建个作业,每周跑一次。
-- 重建所有索引 EXEC sp_MSforeachtable @command1="DBCC DBREINDEX('?')";第三,把tempdb移到单独的分区,或者至少设个大小上限。SQL Server 2005 的tempdb默认自动增长,老程序如果用了大量临时表,能把系统盘写满。
-- 查看 tempdb 文件位置和大小 SELECT name, physical_name, size FROM tempdb.sys.database_files;还有一个血泪经验:装完 SP3 后,把安装介质和补丁包一起归档到工控机本地。下次硬盘挂了,不用满世界找下载链接。我见过太多人装完就把 ISO 删了,结果一年后重装,发现网上资源全失效了。
从那以后我每次给老系统装 SQL Server 2005,都会在 D 盘建一个Setup目录,把主程序、SP3 补丁、Native Client、甚至 SSMS 一起扔进去,再写个readme.txt记下实例名、排序规则、sa 密码提示。这套习惯帮我省了至少三次通宵。希望帮到你。
本文还有配套的精品资源,点击获取