本文爲 Window10 環境下 ,MySQL 5.7 免安裝版配置過程中,常見問題及報錯處理記錄日誌。
配置文件
解壓免安裝版 MySQL 程序後,在解壓目錄或bin目錄下查找是否存在 ini 配置文件,不存在則創建;配置文件內容大致如下:
[mysql]
# 設置MySQL客戶端默認端口
port=3306
# 設置MySQL客戶端默認字符集
character_set_server=utf8
default-character-set=utf8
[mysqld]
#登錄忽略登錄檢查
#skip_grant_tables
# 設置MySQL默認端口
port=3306
# 設置MySQL安裝目錄
basedir=D:/tools/mysql-5.7.21-winx64
# 設置MySQL數據存放目錄
datadir=D:/tools/mysql-5.7.21-winx64/data
# 設置MySQL默認字符集
character_set_server=utf8
default-character-set=utf8
# 去除NO_ZERO_IN_DATE,NO_ZERO_DATE模式 避免默認時間爲‘0000-00-00 00:00:00’時的1067報錯 (修改後重啓未起效,原因未知)
sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 設置最大連接數
max_connections=200
# 創建新表時使用的默認存儲引擎
default-storage-engine=INNODB
# 緩存 innodb 表的索引,數據,插入數據時的緩衝 默認爲 128M
innodb_buffer_pool_size = 256M
query_cache_type=1
# MySQL 的查詢緩存,最少設置 15M
query_cache_size=32M
[client]
character_set_server=utf8
default-character-set=utf8
配置環境變量
# 新增變量(指定本地MySQL路徑,用於後續切換版本)
MYSQL_HOME=D:\tools\mysql-5.7.21-winx64
# PATH中新增變量
%MYSQL_HOME%\bin
數據庫初始化及root賬號密碼生成
命令管理器(管理員模式)中,執行以下語句,進行數據庫初始化並生成root賬號隨機密碼:
mysqld --initialize --user=mysql --console
語句執行完畢後,可以在控制檯中看到類似 A temporary password is generated for root@localhost:[此處爲生成的隨機密碼]
。
配置服務
輸入以下命令,將 MySQL 服務安裝到系統服務中
mysqld --install mysql --defaults-file="D:\tools\mysql-5.7.21-winx64\bin\my.ini"
如不需要安裝服務,則執行以下命令
mysqld --defaults-file="my.ini 配置文件的路徑"
如需刪除已安裝的服務,則執行以下命令
mysqld --remove [已安裝服務名]
# 或
sc delete [已安裝服務名]
安裝好的服務,可以在系統服務中找到。
啓動和停止
已安裝服務,可以使用以下命令啓動 MySQL 數據庫
net start [已安裝服務名]
停止 MySQL 數據庫服務,則執行以下命令
net stop [已安裝服務名]
修改密碼
執行 net start mysql
啓動服務後,執行命令 mysql -u root -p
進行root賬號登錄,根據提示輸入初始密碼,登錄成功後,執行以下命令修改用戶密碼
# set password for [用戶名]@localhost = password('[新密碼]');
set password for root@localhost = password('newPassword');
如未記錄初始密碼,嘗試以下方式處理:
-
可以刪除data目錄進行重新安裝配置
常見問題記錄
忘記密碼處理
錯誤解決記錄
Install/Remove of the Service Denied
mysqld --install
命令執行時報錯,此錯誤爲權限不足導致。
解決方式:
- 用管理員模式運行命令行窗口後重試即可。
由於找不到 MSVRC120.dll,無法繼續執行代碼。
mysqld --initialize-insecure
初始化時報錯,此錯誤是由於未安裝 vcredist (Visual C++ Redistributable Packages 安裝運行時組件)導致。
解決方式:
- 下載安裝 vcredist 後,重新在命令行中嘗試命令
mysqld --initialize-insecure
。
MySQL 服務無法啓動。請鍵入 NET HELPMSG 3523 以獲得更多的幫助。
net start
命令啓動 MySQL 服務時報錯,此問題是因爲 MySQL 的 ini 配置文件,可能是使用 UTF-8 with bom 模式保存導致。
解決方式:
- 用文本編輯器(如,Sublime Text、nodepad++等)打開配置文件後,以 UTF-8 編碼格式保存即可。