看了網上許多關於Windows 本地安裝mysql的很多教學,基本上大同小異。但是安裝軟體有時就可能因為一個細節安裝失敗。我也是綜合了很多個教學才安裝好的,
所以本教學可能也不是普遍適合的。現我將自己本地安裝的步驟總結如下,如有不對的地方,敬請大家批評指正!!!
安裝環境:win7/10
我本地安裝是Mysql8.0的版本,所以這裡我就以我的這個版本為標準來作安裝步驟說明
MySQL8.0 - Windows zip包下載地址:https://dev.mysql.com/downloads/file/?id=476233 進入後不需要登入,直接選擇底部 「No thanks, just start my download.」即可開始下載。
將解壓zip包到安裝目錄新增path中去
解壓後的目錄沒有my.ini檔案,這裡我們自己新建my.ini檔案
my.ini檔案內容如下:
[mysqld] # 設定3306埠 port=3306 # 設定mysql的安裝目錄 切記此處一定要用雙斜槓\\,單斜槓我這裡會出錯,不過看別人的教學,有的是單斜槓。自己嘗試吧 basedir=D:\\tools\\mysql-8.0.11-winx64 # 設定mysql資料庫的資料的存放目錄 datadir=D:\\tools\\mysql-8.0.11-winx64\\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
注意:其中的data目錄不需要建立,下一步初始化工作中會自動建立。
在安裝時,必須以管理員身份執行cmd,否則在安裝時會報錯,會導致安裝失敗的情況
在MySQL安裝目錄的 bin 目錄下執行命令:
注意!執行輸出結果裡面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: RLVR+PGed0wl
其中root@localhost:後面的「RLVR+PGed0wl」就是初始密碼(不含首位空格)。 在沒有更改密碼前,需要記住這個密碼,後續登入需要用到。
在MySQL安裝目錄的 bin 目錄下執行命令: mysqld --install [服務名] 後面的服務名可以不寫,預設的名字為 mysql。當然,如果你的電腦上需要安裝多個MySQL服務,就可以用不同的名字區分了,比如 mysql5 和 mysql8。 安裝完成之後,就可以通過命令net start mysql啟動MySQL的服務了。通過命令net stop mysql停止服務。通過命令
登入mysql: mysql -uroot -p(密碼) 修改密碼: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'song@1234';
到此,安裝部署就完成了。
show databases;
看到預設初始化了mysql資料庫,其中user表裡面儲存MySQL使用者資訊。我們可以看一下預設MySQL使用者:
select user,host,authentication_string from mysql.user;
管理員root的host是localhost,代表僅限localhost登入存取。如果要允許開放其他ip登入,則需要新增新的host。如果要允許所有ip存取,可以直接修改成「%」
CREATE USER 'sjsk'@'%' IDENTIFIED WITH mysql_native_password BY 'sjsk123!@#';
#授權所有許可權 GRANT ALL PRIVILEGES ON *.* TO 'sjsk'@'%'; #授權基本的查詢修改許可權,按需求設定 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'sjsk'@'%'; #檢視使用者許可權 show grants for 'sjsk'@'%'; #檢視密碼加密方式: select user, host, plugin, authentication_string from user;