首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 7 下 MySQL 5.5 64位安裝遷移避坑全紀錄

     編輯:MySQL 綜合教學

環境資訊

  • 作業系統:Windows 7 (64-bit)
  • MySQL 版本:5.5 (64-bit)
  • 安裝方式:MSI 安裝包

問題一:重裝卡在最後一步(Configuration Wizard 卡死)

現象

首次安裝後發現 JDBC 寫入中文亂碼,嘗試修改字元集無效,決定重裝。卸載後重新安裝,Configuration Wizard 最後一步「Start Service」長時間無響應,最終失敗。

根因

Windows 下 MySQL 卸載不乾淨,殘留註冊表鍵值、服務註冊、ProgramData 資料目錄導致新安裝衝突。

徹底清理步驟(按順序執行)

  1. 刪除註冊表:regedit → 搜尋「MySQL」→ 刪除所有相關鍵值(HKEY_LOCAL_MACHINE\SOFTWARE\MySQL、HKEY_CURRENT_USER\SOFTWARE\MySQL)
  2. 刪除安裝目錄:預設 C:\Program Files\MySQL\ 整個資料夾
  3. 刪除資料目錄:C:\ProgramData\MySQL\(隱藏資料夾,需顯示隱藏項目)
  4. 刪除服務殘留(如有):sc delete MySQL 或 mysqld --remove
  5. 重啟電腦:確保文件鎖定釋放

完成上述步驟後重新安裝,Configuration Wizard 順利通過。

問題二:root 密碼正確但無法登入

現象

mysql -uroot -p 輸入確信正確的密碼,提示 Access denied。停止服務以 mysqld --skip-grant-tables 啟動可正常連入。

排查過程

  • 重裝多次,安裝過程中設定 root 密碼均會導致此問題
  • 嘗試安裝時不設定密碼(留空),安裝完成後可正常無密碼登入
  • 登入後手動修改密碼:
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
mysql> FLUSH PRIVILEGES;

(MySQL 5.7+ 用 authentication_string,5.6 用 password 欄位)

經驗總結

Windows MSI 安裝時建議跳過密碼設定,安裝完成後以 --skip-grant-tables 或無密碼登入再改密碼,避開安裝向導的權限表初始化 Bug。

問題三:GBK 歷史資料導入 UTF-8 新庫顯示亂碼

現象

安裝時選擇 UTF-8,導入既有 GBK 編碼的 SQL 檔,查詢中文全為亂碼。

臨時方案

mysql> SET NAMES gbk;
mysql> SELECT * FROM table;  -- 顯示正常

根治方案

  1. 匯出時指定字元集:mysqldump --default-character-set=gbk ...
  2. 匯入前轉檔編碼:iconv -f GBK -t UTF-8 dump.sql > dump_utf8.sql
  3. 或建表時指定 CHARSET=gbk,應用層連接用 SET NAMES gbk

避坑清單總結

階段避坑要點
安裝前必須徹底清理註冊表、ProgramData、安裝目錄
安裝中勾選 UTF-8 / utf8mb4;**跳過 root 密碼設定**
安裝後手動執行 mysql_secure_installation 或 SQL 改密碼
遷移資料統一字元集:匯出端、檔案編碼、匯入端、應用連接四者一致
驗證SHOW VARIABLES LIKE 'char%'; 確認全鏈路 utf8mb4

後記

Windows 下 MySQL 部署看似簡單,實則坑多。生產環境強烈建議改用 Linux(Docker/原生),避開 Windows 文件鎖定、服務管理、字元集預設值等一系列平台特有問題。若必須用 Windows,請嚴格遵循上述清單操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved