本文為 Window10 環(huán)境下 一死,MySQL 5.7 免安裝版配置過(guò)程中敷搪,常見問(wèn)題及報(bào)錯(cuò)處理記錄日志蹄胰。
配置文件
解壓免安裝版 MySQL 程序后擂涛,在解壓目錄或bin目錄下查找是否存在 ini 配置文件扔茅,不存在則創(chuàng)建(創(chuàng)建時(shí)確保保存時(shí)編碼格式為UTF-8已旧,否則后續(xù)操作會(huì)報(bào)錯(cuò));配置文件內(nèi)容大致如下:
[mysql]
# 設(shè)置MySQL客戶端默認(rèn)端口
port=3306
# 設(shè)置MySQL客戶端默認(rèn)字符集
; character_set_server=utf8
default-character-set=utf8
[mysqld]
#登錄忽略登錄檢查
#skip_grant_tables
# 設(shè)置MySQL默認(rèn)端口
port=3306
# 設(shè)置MySQL安裝目錄
basedir=D:/tools/mysql-5.7.21-winx64
# 設(shè)置MySQL數(shù)據(jù)存放目錄
datadir=D:/tools/mysql-5.7.21-winx64/data
# 設(shè)置MySQL默認(rèn)字符集
character-set-server=utf8
# 設(shè)置最大連接數(shù)
max_connections=200
# 創(chuàng)建新表時(shí)使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
# 緩存 innodb 表的索引召娜,數(shù)據(jù)运褪,插入數(shù)據(jù)時(shí)的緩沖 默認(rèn)為 128M
innodb_buffer_pool_size=256M
query_cache_type=1
# MySQL 的查詢緩存,最少設(shè)置 15M
query_cache_size=32M
[client]
; character_set_server=utf8
default-character-set=utf8
配置環(huán)境變量(非必須)
# 新增變量(指定本地MySQL路徑玖瘸,可用于后續(xù)切換版本)
MYSQL_HOME=D:\tools\mysql-5.7.21-winx64
# PATH中新增變量
%MYSQL_HOME%\bin
數(shù)據(jù)庫(kù)初始化及root賬號(hào)密碼生成
命令管理器(管理員模式)中秸讹,執(zhí)行以下語(yǔ)句,進(jìn)行數(shù)據(jù)庫(kù)初始化并生成root賬號(hào)隨機(jī)密碼:
mysqld --initialize --user=mysql --console # --user=數(shù)據(jù)庫(kù)服務(wù)名
語(yǔ)句執(zhí)行完畢后雅倒,可以在控制臺(tái)中看到類似 A temporary password is generated for root@localhost:[此處為生成的隨機(jī)密碼]
璃诀。
配置服務(wù)
輸入以下命令,將 MySQL 服務(wù)安裝到系統(tǒng)服務(wù)中
# mysql 為安裝的數(shù)據(jù)庫(kù)服務(wù)名
mysqld --install mysql --defaults-file="D:\tools\mysql-5.7.21-winx64\bin\my.ini"
如不需要安裝服務(wù)蔑匣,則執(zhí)行以下命令
mysqld --defaults-file="my.ini 配置文件的路徑"
如需刪除已安裝的服務(wù)劣欢,則執(zhí)行以下命令
mysqld --remove [已安裝服務(wù)名] # 如: mysqld --remove mysql
# 或
sc delete [已安裝服務(wù)名] # 如: sc delete mysql
安裝好的服務(wù),可以在系統(tǒng)服務(wù)中找到裁良。
啟動(dòng)和停止
已安裝服務(wù)凿将,可以使用以下命令啟動(dòng) MySQL 數(shù)據(jù)庫(kù)
net start [已安裝服務(wù)名] # 如: net start mysql
停止 MySQL 數(shù)據(jù)庫(kù)服務(wù),則執(zhí)行以下命令
net stop [已安裝服務(wù)名] # 如: net stop mysql
修改密碼
執(zhí)行 net start mysql
啟動(dòng)服務(wù)后价脾,執(zhí)行命令 mysql -u root -p
進(jìn)行root賬號(hào)登錄牧抵,根據(jù)提示輸入初始密碼,登錄成功后彼棍,執(zhí)行以下命令修改用戶密碼
set password for [用戶名]@localhost = password('[新密碼]');
# 如: set password for root@localhost = password('newPassword');
如未記錄初始密碼灭忠,嘗試以下方式處理:
可以刪除data目錄進(jìn)行重新安裝配置
常見問(wèn)題記錄
忘記密碼處理
參看:免安裝版MySQL安裝完成后登陸1045錯(cuò)誤處理
錯(cuò)誤解決記錄
Install/Remove of the Service Denied
mysqld --install
命令執(zhí)行時(shí)報(bào)錯(cuò),此錯(cuò)誤為權(quán)限不足導(dǎo)致座硕。
解決方式:
- 用管理員模式運(yùn)行命令行窗口后重試即可弛作。
由于找不到 MSVRC120.dll,無(wú)法繼續(xù)執(zhí)行代碼华匾。
mysqld --initialize-insecure
初始化時(shí)報(bào)錯(cuò)映琳,此錯(cuò)誤是由于未安裝 vcredist (Visual C++ Redistributable Packages 安裝運(yùn)行時(shí)組件)導(dǎo)致。
解決方式:
- 下載安裝 vcredist 后蜘拉,重新在命令行中嘗試命令
mysqld --initialize-insecure
萨西。
mysqld --defaults-file=my.ini --initialize-insecure 初始化報(bào)錯(cuò) :mysqld: [ERROR] Found option without preceding group in config file
mysqld: [ERROR] Found option without preceding group in config file D:\tools\mysql-5.7.21-winx64\bin\my.ini at line 1!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
折騰好久,最終發(fā)現(xiàn)還是 my.ini 文件的編碼格式錯(cuò)誤(為 UTF-8 with bom 格式)
解決方式:
- 用文本編輯器(如旭旭,Sublime Text谎脯、nodepad++等)打開配置文件后,以 UTF-8 編碼格式保存即可持寄。
mysqld --defaults-file=my.ini --initialize-insecure 初始化報(bào)錯(cuò) : mysqld: Can't create directory
mysqld: Can't create directory 'D:\work\tools\mysql-5.7.21-winx64\data\' (Errcode: 2 - No such file or directory)
此報(bào)錯(cuò)源梭,是因?yàn)?my.ini 配置文件中 basedir
和 datadir
路徑配置問(wèn)題,如此處報(bào)錯(cuò)路徑為 : D:\work\tools\mysql-5.7.21-winx64\data\
(即配置文件中配置的路徑) 稍味,而實(shí)際MySQL路徑為:D:\tools\mysql-5.7.21-winx64\data\
解決方式:
- 檢查并修改配置文件中
basedir
和datadir
路徑為本地MySQL解壓的新路徑
MySQL 服務(wù)無(wú)法啟動(dòng)废麻。請(qǐng)鍵入 NET HELPMSG 3523 以獲得更多的幫助。
net start
命令啟動(dòng) MySQL 服務(wù)時(shí)報(bào)錯(cuò)模庐,此問(wèn)題是因?yàn)?MySQL 的 ini 配置文件烛愧,可能是使用 UTF-8 with bom 模式保存導(dǎo)致。
解決方式:
- 用文本編輯器(如掂碱,Sublime Text怜姿、nodepad++等)打開配置文件后,以 UTF-8 編碼格式保存即可顶吮。
MySQL 服務(wù)無(wú)法啟動(dòng)社牲。請(qǐng)鍵入 NET HELPMSG 3534 以獲得更多的幫助。
參看:免安裝MySQL啟動(dòng)3534錯(cuò)誤處理
mysql -u root -p 登錄數(shù)據(jù)庫(kù)時(shí)報(bào)錯(cuò):mysql: [ERROR] unknown variable 'character_set_server=utf8'
此報(bào)錯(cuò)為 my.ini 配置文件內(nèi)錯(cuò)誤
解決方式:
- 注釋掉配置文件中 [mysql]及[client] 下的 character_set_server=utf8