MySQL 在 Windows 下安裝教程、避坑指南

  • 2019 年 11 月 21 日
  • 筆記

MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發,2008 年被 SUN 公司收購,後 SUN 公司又被 Oracle 公司收購。

一、下載

MySQL 官網 https://www.mysql.com/

點擊 DOWNLOADS 進入下載地址,會看到幾個不同的版本:

  • MySQL Enterprise Edition:企業版(收費)
  • MySQL Cluster CGE:高級集群版(收費)
  • MySQL Community Edition:社區版(開源免費,但官方不提供技術支援)

通常我們用的都是社區版。點擊進入社區版,看到一大堆東西,有點愣住了,不用急,其實點第一個 MySQL Community Server 的下載就可以了。

所以真正的下載地址其實是:https://dev.mysql.com/downloads/mysql/

拉到下面,選擇 Windows 系統。

這裡提供安裝版和解壓版,安裝版是 32 位的(當然 64 位系統下也能安裝),解壓版是 64 位的。

點擊 Download 後會跳轉到如下頁面,這是叫你註冊/登錄的,不理它,點擊左下角的 No thanks, just start my download. 開始下載。

安裝版是 32 位的,而現在的機器多半是 64 位機,雖然 32 位的程式也可以安裝,但是並不建議。安裝版的安裝也比較容易,所以這裡只講解壓版的安裝。

二、解壓版配置

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 所致。這個必須安裝,否則後面服務無法啟動。 下載地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145

如果已安裝,則可以修復一下。

亦可下載一個 MSVCP140.dll,複製到 C:WindowsSystem32,運行如下批處理命令註冊 dll

@echo 開始註冊  copy msvcp140.dll %windir%system32  regsvr32 %windir%system32msvcp140.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';