這是在DataWhale的第一次打卡文章,也是時隔三年再動筆,希望持續(xù)下去。
我沒想到花費了一整天的時間來配置我的寫作環(huán)境(Typora+PicGo+騰訊云oss),因為我不想我的文字局限在某個平臺上,很被動,想要掌握在自己的手里,一個好的寫作環(huán)境就像寫作業(yè)時清理書桌一樣,帶給自己好心情hhh。閑話到此為止,開始正文。
我沒有完全按照教程,而是根據(jù)我已有的資源軟件(比如Scoop),來完成MySQL的安裝。**為什么用Scoop呢,因為安裝又快有方便呀,還好解決環(huán)境的問題。**不過因為不一樣,我感覺會踩坑,這一篇文章,是打卡、是踩坑經(jīng)驗、是教程。
1、Scoop安裝MySQL(確保自己安裝了main bucket)
Scoop install mysql
安裝好之后會有如下的提示
Run 'mysqld --standalone' or 'mysqld --console' to start the Database,
or run following command as administrator to register MySQL as a service. See:
https://dev.mysql.com/doc/refman/en/windows-start-service.html
mysqld --install MySQL --defaults-file="D:\Scoop\apps\mysql\current\my.ini"
To stop and/or delete the Service run 'sc stop MySQL' and 'sc delete MySQL'.
會提示是否設(shè)置為服務(wù),看是否需要,這取決于具體需求。如果只是在本地開發(fā)環(huán)境中使用 MySQL,可能并不需要將其設(shè)置為服務(wù)。但是,如果在生產(chǎn)環(huán)境(如服務(wù)器)中運行 MySQL,那么將其設(shè)置為服務(wù)會更加方便,因為服務(wù)會在系統(tǒng)啟動時自動運行,無需手動啟動。我本地使用,就不設(shè)置服務(wù)了。
2、啟動登錄
啟動命令的區(qū)別:
-
mysqld --standalone
在后臺啟動; -
mysqld --console
在控制臺窗口啟動
這里我選擇運行mysqld --console
成功運行后如下圖
接著最小化這個窗口(嫌麻煩可以用standalone那個命令),再開一個powershell
登錄MySQL來驗證是否能登錄,輸入
mysql -u root -p
命令解讀:
-u
是user的意思,后面跟著用戶名,這里用戶名是root;-p
是password的意思
會有讓你輸入密碼的情況,因為Scoop安裝后密碼為空,所以直接回車
出現(xiàn)下圖則代表登錄成功了
保持這個powershell窗口開著不要動。
3、使用 Navicat 連接 MySQL(推薦指數(shù)5星呢)
3.1、下載安裝Navicat Lite
先下載Navicat,我這里是DataWhale提供的DataWhale Lite的鏈接:
鏈接:https://pan.baidu.com/s/1xdAEXkATNfIS_yhYNROlAQ
提取碼:vktl
先下載安裝,記得更換路徑,不要在C盤(唉,是昨天C盤爆滿,一怒之下重裝系統(tǒng)的慨嘆)
3.2、連接失敗1251問題的解決
**注意?。?!**如果直接用Navicat連接MySQL會顯示下圖。
這意味著Navicat和MySQL協(xié)議不匹配,要么升級 Navicat Lite,要么更改 MySQL 用戶的身份驗證插件。請注意更改身份驗證插件,可能會降低安全性!不過我這里是本地學(xué)習(xí),就更改MySQL。
輸入以下命令,更改MySQL身份驗證協(xié)議,請注意MySQL命令后面帶著“;”號:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
逐部分解析這個命令:
ALTER USER 'root'@'localhost'
:這個部分表示我們要更改的用戶是在localhost
上的root
用戶。IDENTIFIED WITH mysql_native_password
:這個部分將用戶的身份驗證插件更改為mysql_native_password
。MySQL 提供了多種身份驗證插件,而mysql_native_password
是最常見的一種,它使用了基于密碼的身份驗證方案。BY 'yourpassword'
:這個部分將root
用戶的密碼更改為yourpassword
。因為初始密碼為空,所以我們在這里設(shè)置為空
如下圖
3.3 MySQL改密以及配置用戶文件
1、順帶著把密碼給改了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
在這里,
newpassword
應(yīng)該替換為你想要設(shè)置的新密碼。
如下圖
為了使上述更改生效,需要運行 FLUSH PRIVILEGES
命令:
FLUSH PRIVILEGES;
解讀:在 MySQL 中,用戶的權(quán)限信息是在服務(wù)器啟動時加載到內(nèi)存中的,然后就不會再次從磁盤讀取,除非你執(zhí)行了
FLUSH PRIVILEGES
命令。
以上步驟后,可以使用 exit;
命令退出 MySQL 命令行:
exit;
2、配置用戶文件
先來看DataWhale要求的設(shè)置:
下面開始設(shè)置:找到my.ini文件所在地參照我下面的文件目錄(記得要修改成自己的)。我這里用vim編輯器(什么?你沒有vim?安裝一下很快的Scoop install vim
)或者找到配置文件用記事本來修改保存:
vim "D:\Scoop\apps\mysql\current\my.ini"
然后,添加配置(操作步驟:按鍵盤 i
鍵變?yōu)榫庉嬆J?>方向鍵移動光標(biāo)到插入位置->粘貼下面命令->鍵盤按esc鍵退出編輯模式->鍵盤按:wq
退出文件編輯)
**請記住數(shù)據(jù)庫文件的存儲位置要修改為自己的位置?。?!**除了要求的設(shè)置,我額外加了一些其他設(shè)置,可加可不加。
[mysqld]
# 數(shù)據(jù)庫數(shù)據(jù)文件存儲的位置,記得修改為自己的
datadir=D:/scoop/persist/mysql/data
# secure_file_priv 限制了 LOAD DATA, SELECT ... INTO OUTFILE, LOAD_FILE(), ... 等文件操作的目錄。如果設(shè)置為空,表示不做限制,要設(shè)置這個,否則可能無法導(dǎo)入表
secure_file_priv=''
# 設(shè)置默認(rèn)存儲引擎,設(shè)置為 InnoDB 以支持事務(wù)、行級鎖定和外鍵
default-storage-engine=INNODB
# 設(shè)置默認(rèn)字符集,設(shè)置為 utf8mb4 以支持包括中文在內(nèi)的全字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 設(shè)置數(shù)據(jù)庫對象、數(shù)據(jù)庫名和表名為小寫
lower_case_table_names=1
# 允許的最大并發(fā)連接數(shù)
max_connections=200
# 允許從一個主機(jī)連續(xù)連接失敗的次數(shù),超過此數(shù)值,將暫時阻止該主機(jī)的連接請求,這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫系統(tǒng)
max_connect_errors=10
# 如果為 FALSE,則服務(wù)器不會自動將字符集設(shè)置為客戶端的字符集。這樣做可以確保服務(wù)器總是使用下面設(shè)置的 character-set-server 和 collation-server
character-set-client-handshake = FALSE
# 新連接初始化時執(zhí)行的命令,設(shè)置為 'SET NAMES utf8mb4' 以確??蛻舳耸褂谜_的字符集
init_connect='SET NAMES utf8mb4'
# 默認(rèn)使用“mysql_native_password”插件認(rèn)證,這是 MySQL 最常用的身份驗證插件(配置后輸出有Warning,說設(shè)置成caching_sha2_password)更好,修改成caching_sha2_password之后測試也能連接,這里待定)
default_authentication_plugin=mysql_native_password
# 服務(wù)器監(jiān)聽的 TCP/IP 端口號
port=3306
[mysql]
# 設(shè)置 mysql 客戶端的默認(rèn)字符集,設(shè)置為 utf8mb4 以支持全字符集
default-character-set = utf8mb4
[client]
# 默認(rèn)連接的用戶名
user=root
# mysql 客戶端連接服務(wù)器時使用的默認(rèn) TCP/IP 端口號
port=3306
# 客戶端發(fā)送給服務(wù)器的數(shù)據(jù)使用的字符集,設(shè)置為 utf8mb4 以支持全字符集
default-character-set = utf8mb4
3.4、用Navicat連接MySQL
一圖勝所有
可以點擊測試連接,出現(xiàn)連接成功字樣說明安裝成功
4、使用 Navicat 導(dǎo)入 SQL腳本
先下載腳本:
https://github.com/datawhalechina/wonderful-sql/blob/main/materials/create_table_sql/shop.sql
- 打開 GitHub 上的 SQL 腳本文件。
- 右鍵頁面右上角的 “Raw” 按鈕。
- 然后選擇 “將鏈接另存為” 以下載文件
然后導(dǎo)入SQL文件
選項的含義:
- Run multiple queries in each execution: 這個選項允許 Navicat 在每次執(zhí)行時運行多條查詢。如果 SQL 腳本文件包含多條獨立的 SQL 語句,應(yīng)該選擇這個選項。這里關(guān)閉這個選項,如果選中會出錯。
- Set AUTOCOMMIT=0: 這個選項將關(guān)閉自動提交。在 SQL 中,提交是指將事務(wù)中的更改永久保存到數(shù)據(jù)庫中。如果 SQL 腳本中包含了需要在一個事務(wù)中一起執(zhí)行的多條 SQL 語句,應(yīng)該選擇這個選項。在導(dǎo)入完成后,需要手動提交事務(wù)以保證所有的更改都被保存到數(shù)據(jù)庫中。
執(zhí)行完畢后,如下圖:
可能不能看到導(dǎo)入的數(shù)據(jù)表,點擊刷新:
導(dǎo)入成功
4.1 導(dǎo)入失敗怎么辦?看過來
但是!有的小伙伴會出現(xiàn)問題,如下圖:
這意味著這個名字已經(jīng)被使用了,可能是一個已存在的表或者視圖。怎么辦呢,如果存在就替換呀,嘿嘿,這時候需要我們?nèi)バ薷脑瓉淼膕ql文件。
找到下載的sql文件,右鍵用記事本(我是notepad3)打開,找到最后兩行(212行)(或者Ctrl+F搜索SELECT * FROM product
,找到上一行),發(fā)現(xiàn)代碼是
CREATE view `view_product` as
替換為下面這個代碼,也就是增加了個Replace:
CREATE OR REPLACE view `view_product` as
之后保存文件再導(dǎo)入,就ok啦。
至此,MySQL的安裝到此結(jié)束,歡迎一起交流~~~文章來源:http://www.zghlxwxcb.cn/news/detail-600902.html
求關(guān)注,求點贊,求轉(zhuǎn)發(fā),求收藏!您的喜歡是我創(chuàng)作最大的動力!文章來源地址http://www.zghlxwxcb.cn/news/detail-600902.html
到了這里,關(guān)于Scoop安裝配置MySQL最詳細(xì)版(含Navicat連接MySQL)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!