MySQL 4.1 為 Alpha 測試版 (文中 2003 年視角),引入子查詢、準備語句、字符集支援、幫助系統等重大特性,**不建議生產使用**,適合功能驗證、兼容性測試。
mysql-4.1.x-win32.zip,解壓至 C:\MySQL (默認路徑最省心)cd C:\MySQL\bin
mysqld-nt --install # 或 mysqld-max-nt --install
net start MySQL
mysql -u root 空密碼登入成功非默認路徑**:必須創建 my.ini 指定 basedir/datadir,否則服務啟動失敗。
mysqldump --all-databases --single-transaction --master-data=2 > backup.sql (文中僅提「備份數據目錄」)net stop MySQL
mysqld-nt --remove
# 關閉 WinMySQLAdmin 等管理工具
data 目錄,其他文件全部用 4.1 版覆蓋mysqld-nt --skip-grant-tables
mysql < C:\MySQL\scripts\mysql_fix_privilege_tables.sql
此腳本會:添加新權限列 (如 ssl_type、Create_view_priv)、調整表結構、填充默認值。
mysqladmin -u root shutdown
mysqld-nt --install
net start MySQL
mysql -u root -p # 新版權限生效
| 領域 | 變更 | 影響 |
|---|---|---|
| 字符集 | 表/列/連接級字符集、SET NAMES | 舊應用可能亂碼,需顯式指定字符集 |
| 子查詢 | 支援 SELECT ... WHERE col IN (SELECT ...) | 可簡化應用邏輯,但早期優化器不成熟 |
| 準備語句 | PREPARE/EXECUTE/DEALLOCATE PREPARE | 防注入、性能提升,需驅動支援 |
| 幫助系統 | HELP 'command' | 客戶端內建文檔 |
| 頭文件 | 結構體大幅調整 | UDF/連接器需重新編譯 |
MySQL 4.1 的手工升級流程 (備份→停服務→覆蓋文件→skip-grant-tables→mysql_fix_privilege_tables) 反映了早期版本缺乏 mysql_upgrade 自動化工具的歷史缺憾。現代運維應堅持**「不原地升級、不跨大版本、不無演練上線、不無回滾方案」**,將升級風險降至理論最小值。