Windows 10 環境下 MySQL 5.7.11 解壓版安裝全記錄,含環境變數、服務安裝、初始化、密碼重置、Navicat 連線驗證、密碼過期處理。
# 解壓至
C:\DevelopCommon\mysql-5.7.11-winx64
# 重命名為
C:\DevelopCommon\mysql
系統環境變數:
| 變數名 | 變數值 |
|---|---|
| MYSQL_HOME | C:\DevelopCommon\mysql |
| Path | %MYSQL_HOME%\bin;%SystemRoot%\system32 |
⚠️ %SystemRoot%\system32 必須包含在 Path 中,否則 net start mysql 會提示「不是內部命令」。
cd C:\DevelopCommon\mysql\bin
mysqld --install
mysqld --initialize
net start mysql
data 目錄下 *.err 檔案:
2017-01-20T10:56:47.123456Z 1 [Note] A temporary password is generated for root@localhost: ?wxxx
mysql -u root -p
# 輸入上方隨機密碼
若提示 Access denied,執行重置流程:
net stop mysqlmysqld --skip-grant-tables (保持運行)mysql -u root
UPDATE mysql.user SET authentication_string = PASSWORD('rocky') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
QUIT;
--skip-grant-tables 視窗net start mysqlmysql -u root -p 輸入新密碼 rocky連線時提示「密碼過期」:
# 在 MySQL 客戶端執行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
# 或 5.7.6+ 語法
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
再次連線成功。
mysqld --install # 安裝服務 (預設名 MySQL)
mysqld --remove # 移除服務
net start mysql # 啟動
net stop mysql # 停止
mysqld --initialize # 初始化 data 目錄 (生成隨機密碼)
mysqld --initialize-insecure # 初始化不生成密碼 (root 空密碼)
| 問題 | 解決 |
|---|---|
| net 不是內部命令 | Path 加入 %SystemRoot%\system32 |
| 服務啟動失敗 | 查看 data/*.err;檢查 3306 埠;my.ini 路徑正確 |
| 初始化無輸出 | 加 --console 參數 |
| 中文亂碼 | my.ini 設定 character_set_server=utf8mb4 |
| Navicat 2003 錯誤 | 防火牆開放 3306;bind-address=0.0.0.0;授權 % 主機 |
[mysqld]
basedir = C:\DevelopCommon\mysql
datadir = C:\DevelopCommon\mysql\data
port = 3306
server_id = 1
character_set_server = utf8mb4
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_method = unbuffered
sync_binlog = 1
binlog_format = row
gtid_mode = on
enforce_gtid_consistency = 1
log_error = error.log
slow_query_log = 1
long_query_time = 1
Windows 下 MySQL 適合開發測試、中小型應用。大規模生產建議 Linux + 官方 RPM/Percona 分支,效能與穩定性更有保障。