Windows 服務管理器啟動 MySQL 服務時,彈出:
無法在本地計算機啟動 MySQL 服務。錯誤 1067:進程意外中止。
MySQL 服務啟動時讀取 my.ini,若缺少 basedir、datadir 等核心路徑配置,或路徑錯誤、權限不足,進程啟動即崩潰。
%PROGRAMDATA%\MySQL\MySQL Server X.Y\my.ini → C:\Windows\my.ini → 安裝目錄 my.ini。D:\MySQL\)新建 my.ini。[mysqld]
# 安裝根目錄(含 bin、share 等)
basedir=D:/MySQL
# 資料目錄(含 ibdata1、.ibd、db 資料夾)
datadir=D:/MySQL/data
# 連接埠
port=3306
# 字元集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# SQL 模式(生產建議嚴格模式)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[client]
port=3306
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
no-beep
關鍵點:路徑使用正斜線 / 或雙反斜線 \\,目錄必須實際存在且 MySQL 服務帳號有讀寫權限。
REM 以管理員身分執行 CMD
sc delete MySQL
REM 或 mysqld --remove
mysqld --install MySQL --defaults-file="D:\MySQL\my.ini"
net start MySQL
| 問題 | 徵兆 | 解決 |
|---|---|---|
| datadir 空/遺失 ibdata1 | 1067 / InnoDB 錯誤 | 初始化:mysqld --initialize-insecure --basedir=D:\MySQL --datadir=D:\MySQL\data |
| 權限不足 | 1067 / Access denied | 資料目錄授予「NETWORK SERVICE」或服務登入帳號完全控制 |
| 端口佔用 | 1067 / Can't start server | netstat -ano | findstr 3306 找 PID 結束或改 port |
| 殘留 pid 檔 | 啟動即退出 | 刪除 datadir 下 *.pid 檔 |
| my.ini 編碼含 BOM | 配置不生效 | 用 Notepad++ 另存為 UTF-8 無 BOM |
查看 datadir\主機名.err,確認 InnoDB: Database was not shutdown normally! 等恢復訊息後進入 ready for connections。
[mysqld]
basedir=D:/MySQL
datadir=D:/MySQL/data
port=3306
server-id=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=InnoDB
innodb_buffer_pool_size=2G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1
max_connections=500
max_allowed_packet=64M
slow_query_log=1
slow_query_log_file=D:/MySQL/logs/slow.log
long_query_time=1
log-error=D:/MySQL/logs/error.log
pid-file=D:/MySQL/data/mysqld.pid
tmpdir=D:/MySQL/tmp
[client]
port=3306
default-character-set=utf8mb4
修復 my.ini 核心路徑,90% 的 1067 錯誤迎刃而解。