MySQL 在 Windows 下安裝教程、避坑指南
MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發,2008 年被 SUN 公司收購,後 SUN 公司又被 Oracle 公司收購。
一、下載
MySQL 官網 www.mysql.com/
點選 DOWNLOADS
進入下載地址,會看到幾個不同的版本:
- MySQL Enterprise Edition:企業版(收費)
- MySQL Cluster CGE:高階叢集版(收費)
- MySQL Community Edition:社群版(開源免費,但官方不提供技術支援)
通常我們用的都是社群版。點選進入社群版,看到一大堆東西,有點愣住了,不用急,其實點第一個 MySQL Community Server
所以真正的下載地址其實是:dev.mysql.com/downloads/m…
拉到下面,選擇 Windows 系統。
這裡提供安裝版和解壓版,安裝版是 32 位的(當然 64 位系統下也能安裝),解壓版是 64 位的。
點選 Download
後會跳轉到如下頁面,這是叫你註冊/登入的,不理它,點選左下角的 No thanks,just start my download.
開始下載。
二、解壓版配置
1、配置環境變數
將安裝包解壓到你要安裝的目錄,將 bin
目錄新增至環境變數。
2、配置 my.ini
在根目錄下新建一個 my.ini
檔案。
在 my.ini
中新增如下配置:
[mysqld]
; 設定3306埠
port=3306
; 設定mysql的安裝目錄
basedir=C:\\gl\\SQL\\mysql-8.0.18-winx64
; 設定mysql資料庫的資料的存放目錄
datadir=C:\\gl\\SQL\\mysql-data
; 允許最大連線數
max_connections=200
; 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors =10
; 服務端使用的字符集預設為UTF8
character-set-server=utf8
; 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
; 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
[mysql]
; 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
; 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8
複製程式碼
注意:basedir 和 datadir 要改成你自己的目錄。
陷阱:
default_authentication_plugin=mysql_native_password
這一句必須要加上,否則可能導致 root 的初始密碼無法登陸。
3、初始化資料庫
以管理員身份 執行 cmd,切換至安裝目錄的 bin 目錄下,輸入如下命令:
mysqld --initialize --console
複製程式碼
預設的服務名就是 mysql
,也可以指定服務名
mysqld --initialize --console 服務名
複製程式碼
一般是不會去指定服務名的,但是如果你的電腦上需要安裝多個 MySQL 服務,就可以用不同的名字區分。
執行成功後,會顯示 root
的初始密碼,如下圖,這個密碼需要儲存下來。
如果命令中不加 --console
,則在 cmd 視窗將不顯示日誌資訊。可以到 data 目錄(my.ini 中 datadir 配置的目錄)下找一個 .err 的檔案,也可以檢視日誌資訊。
陷阱 1
可能會報“找不到 MSVCP140.dll”
MSVCP140.dll 是 Visual Studio C++ 2015 Redistributable 的組成檔案。
一般出現這個問題,是因為沒有安裝 Visual C++ Redistributable for Visual Studio 2015 所致。這個必須安裝,否則後面服務無法啟動。 下載地址:www.microsoft.com/zh-CN/downl…
如果已安裝,則可以修復一下。
亦可下載一個 MSVCP140.dll,複製到 C:\Windows\System32
,執行如下批處理命令註冊 dll
@echo 開始註冊
copy msvcp140.dll %windir%\system32\
regsvr32 %windir%\system32\msvcp140.dll /s
@echo msvcp140.dll註冊成功
@pause
複製程式碼
註冊成功之後再執行上述 MySQL 命令,就可以正常初始化資料庫了。當然不建議這麼做。
陷阱 2
執行完成之後,仔細檢視輸出的資訊,可能會有如下警告:
'utf8' is currently an alias for the character set UTF8MB3,but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
複製程式碼
utf 8 目前是字符集 UTF8MB3 的別名,在將來的版本中將被 UTF8MB4 替換。請考慮使用 UTF8MB4,以便明確無誤。
如果出現的話,我們只需將 my.ini 檔案中的 utf8 替換成 UTF8MB4。
3.2、安裝服務
安裝服務:
mysqld -install
複製程式碼
啟動服務:
net start mysql
複製程式碼
如果上一步中你指定了另外的服務名,將 mysql
改為你指定的服務名。
登入資料庫:
mysql -u root -p
複製程式碼
這時提示需要輸入密碼,就是前文讓你儲存的密碼。
登入成功後顯示如下:
修改密碼: 執行以下語句,即可將密碼改為 root。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
複製程式碼