在windows下有兩種安裝方式,一種是msi的嚮導式安裝,另一種是壓縮包解壓後手動式安裝,本文就後一種方式提供安裝幫助,是基本翻譯
https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html,如有錯誤,請指正。壓縮包安裝也稱綠色安裝,整個安裝過程涉及9個步驟:
(特別註明:在安裝過程從出現問題請見最後的 安裝問題彙集)
1)下載MsSql壓縮包
2)解壓到指定目錄
3)建立一個配置文件
4)選擇MySql服務類型
5)初始化數據庫目錄
6)啟動、停止、連接服務
7)開啟遠程連接
8)配置MySql工具到環境變量PATH中
9)設置MySql為windows 服務
一、下載MySql壓縮包
在
https://dev.mysql.com/downloads/mysql/ 網址下載 MySQL Community Server,如下圖頁面滾動到頁面底部有下載
二、解壓壓縮包
解壓壓縮包到指定目錄,此目錄將作為MySql服務的運行目錄,請確保目錄具有管理員權限,一般情況下,MySql安裝在C:\mysql 下,如果不安裝此目錄,則需要在啟動時指定安裝目錄或者建立一個配置文件,告訴mysql你的安裝目錄,詳情參見:Section 2.3.5.2, “Creating an Option File”。(
https://dev.mysql.com/doc/refman/8.0/en/windows-create-option-file.html)
三、建立一個配置文件
配置文件詳情參見:my.ini配置說明
1)啟動參數配置方式:啟動MySql時可以指定一些選項,諸如:數據庫文件目錄、內存、緩存等,這些選項可以通過命令行參數的形式指定,也可以通過將參數放置到一個配置文件,在啟動時指定配置文件,從而為MySql指定更多的配置參數。
2)關鍵的兩個目錄 :在MySql 裡,MySql的安裝目錄 和 數據庫文件目錄是不同的,MSI安裝缺省分別是:C:\Program Files\MySQL\MySQL Server 8.0 and C:\Program Files\MySQL\MySQL Server 8.0\data,因此再手動安裝時也需要指定兩個目錄。
3)配置文件的查找過程:MySql首先搜索my.ini,然後搜索my.cnf,為避免衝突建議使用其中一個。MySql在%WINDIR%、C:\、BASEDIR\(即安裝路徑)目錄中搜索文件,特別注意:請確保MySql 用戶有my.ini的讀取權限。
4)配置文件:如果MySql安裝在E:\mysql,數據庫文件路徑為E:\mydata\data,則你需要在配置文件中包含[mysqld](注意:mysqld啟動服務,mysql是控制檯用於連接mysqld)並配置basedir和datadir選項。注意,路徑請用"/",如果為"",則請用""代替。與路徑相關的還有secure-file-priv選項,此項用於MySql的導入導出操作,為null表示不允許導入導出,沒有設置表示沒有任何限制,設置文件夾表示導入導出文件在這個文件夾。其他具體配置詳見
my.ini如下示例
[mysqld] # set basedir to your installation path basedir=E:\\mysql # set datadir to the location of your data directory datadir=E:\\mysql\\data skip-name-resolve
四、選擇MySql服務類型
MySql有兩種服務類型
1)mysqld:一個可以執行文件,是支持命名管道的二進制文件。
2)mysqld-debug:一些安裝包包含了調試版本,文件名mysqld-debug的可以執行文件,支持調試
一般情況下使用 mysqld
五、初始化數據庫目錄
進入mysql的bin目錄,在命令行執行如下命令:
mysqld --defaults-file=K:\mysql\mysql8.0\my.ini --initialize --console
K:\mysql\mysql8.0\my.ini文件是mysql的配置文件
初始化完成後,如下圖
初始化完成後,還需要創建Uploads目錄,因為在my.ini的secure-file-priv選項配置的值為:
K:/mysql/mysqldata/Uploads,所以需要在對應目錄下創建Uploads(初始化沒有自動創建)
六、啟動、停止、連接服務
1)啟動服務
客戶端連接有兩種選項,一是通過端口,二是通過管道名稱(服務器支持管道連接)
命令行下啟動服務:
mysqld --console
因為在my.ini中沒有配置管道名稱(# socket=mysql=MYSQL),文件中已註釋掉,所以socket為空。
3)連接服務
另起一個命名行,執行如下命令後,展示如圖
mysql --port=3306 -uroot -pvg=MY7Cysjjr
然後再mysql> 下執行 show databases;
提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo
re executing this statement.
表示必須重置密碼,通過如下命令修改密碼
alter user user() identified by "123456";
執行完後在show databases;
3)停止服務
另起一個命名行,執行如下命令後
mysqladmin -uroot -p123456 shutdown
七、開啟遠程連接
mysql安裝後默認為localhost連接,mysql數據庫為例
1)為root用戶開啟遠程連接
① 登錄mysql
mysql --port=3306 -uroot -p123456
② 選擇 mysql 數據庫,因為 mysql 數據庫中存儲了用戶信息的 user 表。
use mysql;
③ 在 mysql 數據庫的 user 表中查看當前 root 用戶的相關信息
select host, user, authentication_string, plugin from user;
show variables like '%skip_networking%';
查看錶格中 root 用戶的 host,默認應該顯示的 localhost,只支持本地訪問,不允許遠程訪問。
④ 授權 root 用戶的所有權限並設置遠程訪問
//創建root匹配所有host
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
//修改root用的host改成%
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//授權遠程登錄,GRANT ALL ON 表示所有權限,% 表示通配所有 host,可以訪問遠程。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' ;
//刷新權限
FLUSH PRIVILEGES;
⑤ 執行上面的mysql命令後,查看user 表當前 root 用戶的相關信息
⑥ 在局域網的另一臺電腦連接
打開Navicat Premium 12,如下圖表示連接成功
2)為非root用戶開啟遠程連接
//創建用戶(ntc:用戶名;%:任意ip,也可以指定,root默認就是localhost;123456:登錄密碼)
CREATE USER 'ntc'@'%' IDENTIFIED BY '123456';
//授權,默認創建的用戶權限是usage,就是無權限,只能登錄而已,(all:所有權限,這裡有select,update等等權限;後面的*.*:指定數據庫.指定表,這裡是所有;to後面就是創建的用戶)
GRANT ALL PRIVILEGES ON *.* TO 'ntc'@'%' ;
FLUSH PRIVILEGES;
八、配置MySql工具到環境變量PATH中
為mysql配置windows的path,其目的是命令行在任何目錄下都能找到mysql命令。
在環境變量的path裡增加:K:\mysql\mysql8.0\bin
此為你mysql安裝目錄下的bin目錄
九、設置MySql為windows 服務
在命令行中,執行
mysqld --install MySQLXY --defaults-file="my.ini路徑",my.ini為全路徑
諸如
mysqld --install MySQL8.0 --defaults-file="K:\mysql\mysql8.0\my.ini"
此命令將mysqld加入windows服務中,MySQL8.0為服務名
加入後可以通過如下命令啟動,也可以在windows服務中啟動
net start MySQL8.0
-------------------------------------------------------------------------------
安裝問題彙集
1. 在執行mysqld --defaults-file=K:\mysql\mysql8.0\my.ini --initialize --console時出現
解決辦法:在微軟去下載 vc_redist.x64安裝,然後重新執行上述命令
2. 使用Navicat Premium 12遠程連接時出現SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0
解決方法:打開my.ini,在[mysqld]項下加入一句:skip-name-resolve,保存,重啟mysql服務即可~,參見如下my.ini示例
[mysqld] # set basedir to your installation path basedir=E:\\mysql # set datadir to the location of your data directory datadir=E:\\mysql\\data skip-name-resolve