首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 免安裝版 (noinstall) Windows 配置全流程詳解:從解壓到生產就緒

     編輯:MySQL 資料庫相關知識

優勢與適用場景

  • 綠色免安裝:解壓即用,便於版本切換、多實例部署、攜帶遷移。
  • 無注冊表污染:協乾淨,重裝系統只需備份數據目錄。
  • 適合開發、測試、輕量級生產。

第一步:下載與解壓

  • 官網下載 `mysql-noinstall-5.1.53-win32.zip` (或較新版 5.7/8.0)。
  • 解壓至目標目錄,如 `D:\mysql-5.1.53`。此為 **Basedir (安裝根目錄)**。

第二步:配置文件 `my.ini` 創建與核心參數

根目錄下有多個模板 `my-*.ini`,根據機器內存選擇一個重命名為 `my.ini`:

  • `my-small.ini`:≤ 64MB 內存
  • `my-medium.ini`:32-64MB 內存,MySQL 較重要
  • `my-large.ini`:512MB 內存,主庫
  • `my-huge.ini`:1-2GB 內存,主庫
  • `my-innodb-heavy-4G.ini`:4GB+ 內存,純 InnoDB 高並發

編輯 `my.ini`,在 `[mysqld]` 區塊**必須**設置:

[mysqld]
# === 必填核心路徑 ===
basedir = D:/mysql-5.1.53           # 安裝根目錄 (正斜槓或雙反斜槓)
datadir = D:/mysql-5.1.53/data      # 數據文件目錄 (需預先創建或初始化生成)

# === 推薦基礎優化 ===
port = 3306
character-set-server = utf8mb4      # 5.5+ 推薦 utf8mb4
default-storage-engine = INNODB
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
max_connections = 200
innodb_buffer_pool_size = 128M      # 專用機建議物理內存 60-70%
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 1  # ACID 安全,性能可設 2

客戶端默認字符集 `[client]`:

[client]
port = 3306
default-character-set = utf8mb4

第三步:安裝為 Windows 服務

cmd 進入 basedir\bin 目錄
# 安裝服務 (服務名自定,如 MySQL51)
mysqld --install MySQL51 --defaults-file="D:\mysql-5.1.53\my.ini"

# 設置自動啟動
sc config MySQL51 start= auto

# 移除服務 (如需)
mysqld --remove MySQL51

✅ 出現 `Service successfully installed.` 表示成功。

第四步:初始化數據目錄 (關鍵!)

MySQL 5.7+ / 8.0 (數據目錄為空時):

mysqld --initialize-insecure --user=mysql --basedir="D:\mysql-5.1.53" --datadir="D:\mysql-5.1.53\data"
# --initialize-insecure: 生成無密碼 root
# --initialize: 生成隨機密碼 (需查錯誤日志)

MySQL 5.6 及舊版 (本文原版本):

# 舊版無 initialize 參數,首次啟動服務會自動初始化 data 目錄
# 或手動運行腳本 (視具體版本)
mysql_install_db --basedir="D:\mysql-5.1.53" --datadir="D:\mysql-5.1.53\data"

第五步:啟動、連接、修改初始密碼

# 啟動服務
net start MySQL51

# 連接 (初始無密碼或隨機密碼)
mysql -u root -p

# 修改 root 密碼並允許遠程 (視需求)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';
CREATE USER 'root'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

第六步:精簡部署 (可選,節省空間)

保留核心目錄,刪除其餘:

  • ✅ 保留:`my.ini`、`bin/`、`data/`、`share/`
  • 🗑️ 刪除:`docs/`、`mysql-test/`、`sql-bench/`、`*.pdb` (bin 目錄下調試符號文件)

第七步:亂碼問題徹底解決

統一字符集為 `utf8mb4` (支持 Emoji),配置如下:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

創建庫表時顯式指定:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE t (c VARCHAR(100)) CHARSET=utf8mb4;

附:網友提供的生產級配置參考 (MySQL 5.1)

[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
port=3306
basedir="E:/Program Files/mysql-5.1.58-win32/"
datadir="E:/MySQL Datafiles/"
default-character-set=gbk
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=15M
table_cache=256
tmp_table_size=18M
thread_cache_size=8
key_buffer_size=23M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_buffer_pool_size=42M
innodb_log_file_size=10M
innodb_thread_concurrency=8
# ... 更多 InnoDB 參數
# 注意:datadir 和 innodb_data_home_dir 建議指向同一目錄

總結檢查清單

  1. 解壓路徑無中文、無空格。
  2. `my.ini` 中 `basedir`、`datadir` 路徑正確,使用正斜槓 `/`。
  3. `datadir` 目錄存在且寫入權限正常。
  4. 以管理員權限運行 CMD 安裝服務。
  5. 執行初始化 (5.7+ 必須)。
  6. 啟動服務無報錯,`net start` 成功。
  7. 修改初始密碼,配置字符集。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved