下載到命令行增刪改查)
簡介這份MySQL安裝及使用教程面向數(shù)據(jù)庫零基礎(chǔ)讀者也適合需要在Windows環(huán)境快速部署MySQL并掌握核心操作的開發(fā)人員。教程以單個(gè)docx文檔講解完整流程從官網(wǎng)下載MySQL Installer、安裝配置、密碼與實(shí)例名稱設(shè)置到環(huán)境變量path的檢查與添加每一步都配有界面截圖及操作說明同時(shí)對部分組件下載失敗的情況給出應(yīng)對提示避免新手誤判。第二部分重點(diǎn)演示W(wǎng)orkbench如何建立數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表并錄入數(shù)據(jù)同時(shí)整理了select、insert、update、delete四種增刪改查語句的語法與示例方便讀者直接對照練習(xí)。文檔共1個(gè)docx文件壓縮包大小約1.53MB內(nèi)容緊湊覆蓋從零開始搭建數(shù)據(jù)庫環(huán)境到命令行查詢的主要節(jié)點(diǎn)。該資源已有1454人學(xué)習(xí)下載尤其適合高校學(xué)生、運(yùn)維人員和轉(zhuǎn)崗開發(fā)者。按文檔步驟操作可避開常見安裝坑點(diǎn)既能通過Workbench可視化完成建庫建表也能在命令行中熟練執(zhí)行SQL語句為后續(xù)MySQL數(shù)據(jù)庫編程與性能優(yōu)化打下扎實(shí)基礎(chǔ)。1. 一小時(shí)裝好MySQL從官網(wǎng)下載到能跑第一條SQL第一次裝MySQL的人十有八九卡在同一個(gè)地方安裝結(jié)束、next點(diǎn)完打開命令行敲mysql -uroot -p得到的卻是“不是內(nèi)部或外部命令”要么就是Workbench里新建連接test connection一直紅燈。這套“MySQL安裝及使用教程”正好把MySQL數(shù)據(jù)庫的整條鏈路串起來官網(wǎng)下載選包、安裝配置、環(huán)境變量、服務(wù)啟動(dòng)再到Workbench建庫建表、命令行增刪改查用的是最常見的MySQL 8.0 Windows環(huán)境。適合正在上數(shù)據(jù)庫課的學(xué)生、需要在本地搭環(huán)境練SQL的開發(fā)者以及要給團(tuán)隊(duì)整理裝機(jī)文檔的運(yùn)維新人。跟著走完你能獨(dú)立裝好MySQL并完成建庫、建表、插數(shù)據(jù)、查詢、更新、刪除這一整套基礎(chǔ)操作。2. 下載與安裝細(xì)節(jié)選對第二個(gè)安裝包服務(wù)名和環(huán)境變量才是關(guān)鍵在下載這一步“找不到入口”和“下錯(cuò)安裝包”是兩個(gè)最大的翻車點(diǎn)。MySQL官網(wǎng)的下載路徑有好幾層菜單而且同一個(gè)頁面里不止一個(gè)下載按鈕第一次去的人很容易點(diǎn)錯(cuò)。先把入口和選型理清楚安裝過程會(huì)順利很多。2.1 下載入口與選包為什么官網(wǎng)要讓你選第二個(gè)安裝包瀏覽器打開MySQL官網(wǎng)點(diǎn)導(dǎo)航里的Downloads進(jìn)入下載中心。下載中心里有很多分類找Community社區(qū)版然后在列表里點(diǎn)開MySQL on Windows就能看到MySQL Installer相關(guān)的下載項(xiàng)。社區(qū)版是免費(fèi)開放的個(gè)人學(xué)習(xí)、課程作業(yè)、開發(fā)環(huán)境都用它不需要碰商業(yè)版那一欄。進(jìn)入MySQL Installer的下載頁面后上面通常有兩個(gè)安裝包。第一個(gè)是Web Community版本體積很小只有幾MB它本質(zhì)上只是一個(gè)下載器運(yùn)行時(shí)按需聯(lián)網(wǎng)去拉組件第二個(gè)是Community完整安裝包體積大很多MySQL Server、Workbench、Shell這些組件都打包在里面。教程截圖里讓你“拉到頁面最底端選中第二個(gè)安裝包”說的就是這個(gè)完整包。為什么一定要選第二個(gè)我第一次裝的時(shí)候圖省事選了web版本安裝向?qū)艿揭话肟ㄔ诼?lián)網(wǎng)下載組件進(jìn)度條停在某一步不動(dòng)最后只能關(guān)掉重來。完整包把所有東西都帶齊了安裝過程對網(wǎng)絡(luò)依賴小得多。尤其是不確定網(wǎng)絡(luò)環(huán)境穩(wěn)不穩(wěn)的機(jī)器選完整包基本不會(huì)在下載環(huán)節(jié)浪費(fèi)時(shí)間。另外安裝包命名里帶不帶web也能分辨名字里帶web-community的是在線安裝器不帶web的是完整包。下載完雙擊運(yùn)行進(jìn)入安裝向?qū)А?.2 execute/next背后的關(guān)鍵配置組件、root密碼和服務(wù)名安裝過程看起來就是一路execute、next但這些窗口里藏著三個(gè)不能跳過的點(diǎn)。第一是Setup Type安裝類型。默認(rèn)是Developer Default會(huì)勾選MySQL Server、MySQL Workbench、MySQL Shell等一套開發(fā)組件。如果只是練習(xí)SQL默認(rèn)選項(xiàng)就夠用。如果磁盤空間緊張也可以選Server only只裝服務(wù)端后面用命令行操作。第一次用的人別選Custom然后亂砍組件把Server砍掉后面就沒服務(wù)可啟動(dòng)Workbench連空氣。第二是root密碼。向?qū)?huì)在配置階段要求你輸入并確認(rèn)root賬戶的密碼。root在MySQL里是最高權(quán)限賬戶相當(dāng)于Windows的Administrator。新版還帶了密碼強(qiáng)度校驗(yàn)密碼必須滿足長度和字符組合的要求。開發(fā)機(jī)建議把校驗(yàn)等級(jí)選低一檔密碼也別搞得太復(fù)雜但要記住。記不住密碼的人后面test connection會(huì)一遍遍亮紅燈。第三是Windows Service配置。向?qū)?huì)默認(rèn)創(chuàng)建一個(gè)名為MySQL80的Windows服務(wù)允許MySQL開機(jī)自啟。安裝完你在Windows服務(wù)管理器里能看到這個(gè)MySQL80。這一步出現(xiàn)的名字是服務(wù)名不是數(shù)據(jù)庫名。很多教程里讓你用net start mysql80這里的mysql80指的就是安裝時(shí)看到的服務(wù)名跟你后續(xù)use哪個(gè)數(shù)據(jù)庫完全是兩回事。如果安裝時(shí)手動(dòng)改過服務(wù)名后面所有net start命令里的名字都要跟著改。配置階段還會(huì)讓你確認(rèn)連接端口默認(rèn)3306沒有特殊沖突就不用改。端口、服務(wù)名、root密碼這三個(gè)值建議拿筆記下來后面每一步排查都要用到。2.3 環(huán)境變量與服務(wù)啟停裝好后的兩個(gè)核對動(dòng)作安裝完成后向?qū)б话銜?huì)自動(dòng)把bin目錄寫進(jìn)系統(tǒng)環(huán)境變量。所謂bin目錄就是放mysql.exe、mysqld.exe這些可執(zhí)行文件的文件夾命令行之所以能直接敲mysql靠的就是這個(gè)目錄在PATH里。核對環(huán)境變量直接新開一個(gè)cmd窗口輸入mysql --version能輸出版本號(hào)就是PATH沒問題。如果提示“不是內(nèi)部或外部命令”就去系統(tǒng)屬性→高級(jí)→環(huán)境變量在系統(tǒng)變量的Path里新增一條C:\Program Files\MySQL\MySQL Server 8.0\bin注意環(huán)境變量對終端進(jìn)程是啟動(dòng)時(shí)讀取的。改完P(guān)ATH之后必須把之前開的cmd窗口全部關(guān)掉再重新打開已經(jīng)在運(yùn)行的窗口不會(huì)重新讀PATH。這個(gè)細(xì)節(jié)非常容易踩第5章還會(huì)單獨(dú)說。服務(wù)啟動(dòng)用管理員權(quán)限打開cmd然后執(zhí)行net start mysql80這條命令的作用是把名為mysql80的Windows服務(wù)啟動(dòng)起來。net start后面跟的是服務(wù)名不是路徑、不是命令所以名字必須和安裝時(shí)配置的那個(gè)完全一致。我一般會(huì)順手再執(zhí)行一下net stop mysql80確認(rèn)服務(wù)能正常停掉。安裝完第一次啟動(dòng)服務(wù)通常已經(jīng)在運(yùn)行中此時(shí)net start會(huì)提示“服務(wù)已經(jīng)啟動(dòng)”這也是正?,F(xiàn)象。提示管理員權(quán)限是必須的。普通用戶權(quán)限執(zhí)行net start會(huì)直接提示“發(fā)生系統(tǒng)錯(cuò)誤 5拒絕訪問”這不是命令寫錯(cuò)了是權(quán)限不夠。到這里MySQL本體就裝完并且能跑起來了。接下來進(jìn)入Workbench圖形界面建庫。3. Workbench建庫建表從連接配置到圖形化寫入首行數(shù)據(jù)安裝成功的另一個(gè)標(biāo)志是打開MySQL Workbench時(shí)能新建連接并進(jìn)入操作界面。Workbench是MySQL官方自帶的圖形化管理工具建庫、建表、寫數(shù)據(jù)都可以在上面點(diǎn)出來。它對新手最大的價(jià)值是每一個(gè)圖形操作都會(huì)在背后生成對應(yīng)的SQL語句你能通過它反向?qū)W會(huì)SQL怎么寫。建庫之前先要把連接建立起來。3.1 新建連接加號(hào)、用戶名、密碼與連接名打開Workbench主頁正中間是連接列表。第一次打開列表是空的。點(diǎn)列表右側(cè)的加號(hào)彈出Connection Setup窗口里面有幾個(gè)關(guān)鍵字段Connection Name連接名隨便填一個(gè)比如教程里用的db_2這個(gè)名稱只是本地保存的標(biāo)識(shí)跟服務(wù)器、跟數(shù)據(jù)庫都沒有關(guān)系。Usernameroot。Password可以點(diǎn)Store in Vault預(yù)先保存也可以不保存每次連接時(shí)輸入。開發(fā)機(jī)建議保存省得每次敲。Hostname和Port保持默認(rèn)127.0.0.1和3306127.0.0.1代表連接本機(jī)3306是MySQL默認(rèn)端口安裝時(shí)沒改過就不用動(dòng)。填好后先點(diǎn)Test Connection測試。測試通過會(huì)彈出提示再點(diǎn)OK保存連接。測試失敗也不要急著反復(fù)點(diǎn)先看服務(wù)、密碼、端口這三個(gè)點(diǎn)具體排查順序在第5章。保存后連接列表里會(huì)出現(xiàn)你命名的db_2。雙擊它輸入密碼進(jìn)入Workbench主操作界面。左邊是SCHEMAS導(dǎo)航樹右邊是SQL編輯區(qū)和結(jié)果區(qū)。3.2 建庫與建表Apply按鍵背后生成的是SQL進(jìn)入主界面后先建數(shù)據(jù)庫。Workbench頂部工具欄有一個(gè)帶加號(hào)的文件夾圖標(biāo)點(diǎn)擊后在彈窗里輸入數(shù)據(jù)庫名。教程里的庫名是database_2輸入后點(diǎn)Apply。Workbench會(huì)彈出一個(gè)確認(rèn)窗口里面已經(jīng)自動(dòng)生成了一行SQLCREATE SCHEMA database_2 DEFAULT CHARACTER SET utf8mb4;這是圖形操作最值得注意的地方你在界面里輸入一個(gè)庫名Workbench幫你在后臺(tái)拼好了一條DDL。這時(shí)候再點(diǎn)一次Apply這條語句才真正發(fā)到MySQL服務(wù)端執(zhí)行。這樣的“兩步Apply”設(shè)計(jì)讓初學(xué)者每一次圖形操作都能看到背后的SQL長什么樣也就不會(huì)出現(xiàn)“只會(huì)點(diǎn)按鈕、脫離界面就不會(huì)寫SQL”的情況。圖形操作生成的SQL本來是個(gè)黑匣子Workbench把它攤開給你看了。庫建好后左側(cè)SCHEMAS里出現(xiàn)database_2。展開它右擊Tables選擇Create Table打開表設(shè)計(jì)器。在表設(shè)計(jì)器的網(wǎng)格里定義字段以student表為例至少要有這幾個(gè)字段字段名數(shù)據(jù)類型說明idstudentINT學(xué)生編號(hào)設(shè)為主鍵nameVARCHAR(20)姓名最長20個(gè)字符ageINT年齡addrVARCHAR(50)地址最長50個(gè)字符每個(gè)字段按列填好第一列是字段名第二列是數(shù)據(jù)類型后面的PK表示主鍵NN表示非空AI表示自增。idstudent這一類編號(hào)字段建議把PK和AI都勾上這樣插入數(shù)據(jù)時(shí)不寫id也會(huì)自動(dòng)生成不容易沖突。填完后點(diǎn)ApplyWorkbench會(huì)再次先展示它生成的SQLCREATE TABLE student ( idstudent int NOT NULL AUTO_INCREMENT, name varchar(20) DEFAULT NULL, age int DEFAULT NULL, addr varchar(50) DEFAULT NULL, PRIMARY KEY (idstudent) );點(diǎn)Apply執(zhí)行表就建好了。到這里庫和表都創(chuàng)建成功??梢钥偨Y(jié)出一個(gè)規(guī)律所有點(diǎn)按鈕完成的動(dòng)作最終都落在SQL語句上。圖形界面不是另一套體系它只是SQL的圖形化外殼。3.3 寫入第一條數(shù)據(jù)Select Rows的編輯模式與Apply保存表建好后就可以往里寫數(shù)據(jù)了。左側(cè)導(dǎo)航樹里右擊student表菜單里能看到一項(xiàng)Select Rows - Limit 1000意思是查詢這張表并顯示前1000行是Workbench最常用的瀏覽表數(shù)據(jù)的入口。點(diǎn)擊之后右側(cè)結(jié)果網(wǎng)格顯示student表的查詢結(jié)果。因?yàn)楸硎强盏木W(wǎng)格里只有表頭。在網(wǎng)格最后一行空白的格子里直接輸入idstudent填1name填張三age填20addr填幸福路18號(hào)。輸入完成后網(wǎng)格下方會(huì)出現(xiàn)一組按鈕其中一個(gè)寫著Apply。這一步不是自動(dòng)保存的在網(wǎng)格里編輯的數(shù)據(jù)要點(diǎn)擊Apply才會(huì)生成INSERT語句并真正寫入數(shù)據(jù)庫。點(diǎn)擊后Workbench會(huì)先彈出一條INSERT語句確認(rèn)無誤再點(diǎn)一次Apply數(shù)據(jù)落庫。Workbench把“把界面操作翻譯成SQL”這一步明明白白展示出來。你輸入的一行數(shù)據(jù)翻譯過來就是這條SQLINSERT INTO student (idstudent, name, age, addr) VALUES (1, 張三, 20, 幸福路18號(hào));學(xué)會(huì)看這些彈窗再看第4章的命令行增刪改查會(huì)順暢很多語法完全是一回事。4. 命令行增刪改查select/insert/update/delete的語法與邊界圖形界面適合建庫建表真要練習(xí)SQL還是命令行順手。命令行是MySQL服務(wù)端真正接受的交互方式Workbench的每一個(gè)操作最終都會(huì)被翻譯成SQL發(fā)到服務(wù)端。這一章用最簡的語法把增刪改查過一遍每一條都會(huì)說明參數(shù)邊界和容易翻車的地方。4.1 進(jìn)入命令行mysql -uroot -p與show系列打開一個(gè)新的cmd窗口輸入下面命令并回車mysql -uroot -p參數(shù)說明-u后面直接跟用戶名root中間沒有空格-p表示登錄時(shí)需要輸入密碼?;剀嚭蠼K端顯示Enter password輸入安裝時(shí)設(shè)置的root密碼。注意輸入密碼時(shí)屏幕不會(huì)顯示任何字符也不會(huì)顯示星號(hào)這是終端的安全設(shè)計(jì)不是鍵盤壞了。輸入完成回車出現(xiàn)mysql提示符說明登錄成功。登錄后先看有哪些庫show databases;這條命令會(huì)列出MySQL服務(wù)端所有的數(shù)據(jù)庫包括系統(tǒng)自帶的information_schema、mysql、performance_schema等還有剛才用Workbench建的database_2。這里能順便驗(yàn)證一件事Workbench建的庫和命令行看到的庫是同一套兩條路徑連的是同一個(gè)服務(wù)端。接著切換到目標(biāo)庫use database_2;use的作用是切換當(dāng)前使用的數(shù)據(jù)庫類似在文件系統(tǒng)里cd進(jìn)目錄。切換后沒有返回信息是正常現(xiàn)象。然后列出當(dāng)前庫的表show tables;能看到student表說明use生效。后面的所有SQL都是在這個(gè)庫的上下文中執(zhí)行的。4.2 select從全表查詢到條件過濾查詢是使用頻率最高的操作。最簡單的查法select * from student;*代表所有列這條語句把student表的全部數(shù)據(jù)都查出來。教學(xué)場景里這種寫法沒問題生產(chǎn)環(huán)境表很大的時(shí)候盡量避免select *因?yàn)闀?huì)把不需要的列也拖回來。這一章的練習(xí)庫里怎么方便怎么來。帶條件查詢select * from student where age 18;where后面的就是過濾條件。執(zhí)行順序是先確定表再按條件過濾行然后取列。select的列部分如果只想要某幾列可以這樣寫select idstudent, name from student where age 18;邏輯說明where支持比較運(yùn)算符等于用大于用小于用不等于用!多個(gè)條件用and連接比如where age 18 and addr 幸福路18號(hào)。字符串條件必須用單引號(hào)括起來。查詢本身不會(huì)修改任何數(shù)據(jù)放心大膽試。4.3 insert列與值一一對應(yīng)字符串記得加引號(hào)插入數(shù)據(jù)的標(biāo)準(zhǔn)語法insert into student(idstudent, name, age, addr) values (3, 王五, 21, 幸福路18號(hào));括號(hào)里的兩部分必須一一對應(yīng)前面寫列名后面寫值列的順序和值的順序按對應(yīng)關(guān)系排好。把這一條拆開看列名示例值要不要單引號(hào)idstudent3不要整數(shù)直接寫name王五要字符串必須加age21不要整數(shù)直接寫addr幸福路18號(hào)要字符串必須加數(shù)值類型不加引號(hào)字符串和日期類型必須加單引號(hào)。最容易翻車的就是字符串漏了引號(hào)或者列數(shù)量跟值數(shù)量對不上。如果idstudent在建表時(shí)勾了自增insert時(shí)可以省略這一列讓數(shù)據(jù)庫自己分配編號(hào)insert into student(name, age, addr) values (李四, 22, 長寧街3號(hào));這條語句沒寫id列值也只有三個(gè)和前面的列名一一對應(yīng)。自增列的優(yōu)點(diǎn)是永遠(yuǎn)不會(huì)手寫出重復(fù)的編號(hào)也就不存在主鍵沖突的可能。4.4 update與delete不帶WHERE就是對全表下手沒有后悔藥修改數(shù)據(jù)用update。標(biāo)準(zhǔn)寫法update student set age 19 where id 3;set后面是“列 新值”where后面是條件。上面這條的含義是把student表里id等于3那一行的age改成19。update最關(guān)鍵的邊界在where如果不寫where它會(huì)更新整張表的所有行把所有人的age都改成19。完整的update語法還支持LOW_PRIORITY、IGNORE、ORDER BY、LIMIT這些修飾符完整語法聲明是UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1expr1 [, col_name2expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]邏輯說明LOW_PRIORITY會(huì)讓更新在表空閑時(shí)才執(zhí)行適合大表低優(yōu)先級(jí)任務(wù)IGNORE遇到錯(cuò)誤時(shí)跳過繼續(xù)而不是中斷ORDER BY和LIMIT配合可以只更新排序后的前N行。日常練習(xí)和普通開發(fā)LOW_PRIORITY這些幾乎用不到真正必須養(yǎng)成習(xí)慣的是where條件。刪除數(shù)據(jù)用deletedelete from student where idstudent 3;delete后面不需要寫列名它刪除的是整行。where的作用和update一樣是限定范圍。不帶where的delete會(huì)清空整張表delete from student;這條會(huì)把表中所有數(shù)據(jù)一次刪光表本身還在但數(shù)據(jù)沒了。沒有開啟事務(wù)的情況下刪錯(cuò)基本沒有后悔藥只能找備份或者手工重新錄入。所以實(shí)際使用時(shí)我會(huì)先執(zhí)行一次select確認(rèn)范圍select * from student where idstudent 3;確認(rèn)命中的確實(shí)是要?jiǎng)h的那一行再執(zhí)行delete。update同理改之前先select改完之后再看一眼結(jié)果這個(gè)習(xí)慣能避免絕大多數(shù)誤操作。5. 安裝到使用的常見問題與排查四個(gè)高頻翻車現(xiàn)場前面章節(jié)走完MySQL安裝和使用的主流程就通了。但主流程之外還有幾個(gè)出現(xiàn)頻率極高的坑這些坑不看型號(hào)、不看人只要條件碰上了就會(huì)踩。下面幾條都是血淚經(jīng)驗(yàn)按“現(xiàn)象、原因、解決”拆開記錄。5.1 組件安裝失敗Install亮紅不代表裝廢現(xiàn)象MySQL Installer執(zhí)行安裝時(shí)某個(gè)組件一直顯示Failed或download failed進(jìn)度條停在半路點(diǎn)Next進(jìn)不了下一步。原因完整安裝包里也不是100%包含所有組件部分?jǐn)U展組件比如Connector/Python、MySQL for Visual Studio這些仍然會(huì)在安裝過程中臨時(shí)聯(lián)網(wǎng)下載。網(wǎng)絡(luò)訪問源站不穩(wěn)定時(shí)這些組件就會(huì)反復(fù)失敗。解決點(diǎn)Retry重試一兩次仍然失敗就跳過。只要核心的兩個(gè)東西裝成功就行——MySQL Server和MySQL Workbench。Server是真正干活的數(shù)據(jù)庫服務(wù)Workbench是圖形管理工具。在組件列表里確認(rèn)這兩個(gè)是綠燈或已安裝其他組件后面要用再單獨(dú)裝不影響第3章和第4章的練習(xí)。5.2 net start mysql80報(bào)“服務(wù)名無效”現(xiàn)象管理員權(quán)限的cmd里執(zhí)行net start mysql80系統(tǒng)提示“服務(wù)名無效”或“服務(wù)尚未啟動(dòng)”但明明剛裝完MySQL。原因這個(gè)報(bào)錯(cuò)很像玄學(xué)其實(shí)原因很固定。安裝環(huán)節(jié)配置Windows Service時(shí)服務(wù)名默認(rèn)是MySQL80注意它和你設(shè)置的數(shù)據(jù)庫名、連接名是完全不同的三個(gè)東西。如果安裝時(shí)手動(dòng)改過服務(wù)名或者某些版本默認(rèn)服務(wù)名不叫mysql80命令里的名字就和實(shí)際對不上。Windows在net start時(shí)認(rèn)的是服務(wù)管理器里的注冊名不是安裝目錄名。解決打開服務(wù)管理器WinR輸入services.msc回車在列表里找到MySQL相關(guān)的服務(wù)項(xiàng)看它真實(shí)的顯示名稱是什么再用真實(shí)名稱執(zhí)行。比如服務(wù)顯示名是MySQL80就執(zhí)行net start MySQL80。如果服務(wù)列表里壓根沒有MySQL說明Server沒有裝成功回到5.1看組件狀態(tài)。也可以用sc query mysql直接查服務(wù)配置輸出里能看到服務(wù)名和狀態(tài)比肉眼翻服務(wù)列表快。5.3 mysql不是內(nèi)部或外部命令現(xiàn)象在cmd里輸入mysql -uroot -p系統(tǒng)提示“mysql 不是內(nèi)部或外部命令也不是可運(yùn)行的程序或批處理文件”。Workbench能正常打開命令行就是不行。原因命令行找可執(zhí)行程序靠的是PATH環(huán)境變量。MySQL的bin目錄不在PATH里cmd就不知道去哪里找mysql.exe。安裝向?qū)б话銜?huì)自動(dòng)配置但改過安裝路徑、或者安裝過程有部分配置被跳過時(shí)PATH里就會(huì)缺這一項(xiàng)。解決手動(dòng)把bin目錄加進(jìn)系統(tǒng)Path。默認(rèn)安裝路徑是C:\Program Files\MySQL\MySQL Server 8.0\bin在系統(tǒng)屬性→環(huán)境變量→系統(tǒng)變量里找到Path編輯新增這一行保存。改完關(guān)鍵一步是重新打開cmd不能再用之前已經(jīng)開著的窗口已經(jīng)打開的終端不會(huì)重新加載環(huán)境變量。新窗口再敲mysql --version驗(yàn)證能輸出版本號(hào)就通了。5.4 Workbench連接紅燈按三個(gè)順序排查現(xiàn)象新建連接后點(diǎn)Test Connection彈窗報(bào)錯(cuò)按鈕一直是紅燈。有時(shí)還會(huì)附帶Cant connect to MySQL server on 127.0.0.1之類提示。原因這一類報(bào)錯(cuò)實(shí)際只有三個(gè)來源。第一MySQL服務(wù)沒啟動(dòng)服務(wù)沒跑起來端口自然不通第二用戶名或密碼不對root密碼輸錯(cuò)是發(fā)生率最高的第三端口不對安裝時(shí)改過3306連接配置里還填3306就連不上。解決先在cmd里執(zhí)行net start mysql80確認(rèn)服務(wù)狀態(tài)服務(wù)沒起來先啟動(dòng)服務(wù)。服務(wù)沒問題后回到Workbench核對Username是不是rootPassword填的是不是安裝配置階段設(shè)置的那個(gè)。記不清密碼可以在cmd里執(zhí)行mysql -uroot -p能登進(jìn)去說明密碼沒問題那就是連接配置里保存的密碼和真實(shí)密碼不一致重新輸入保存即可。5.5 命令行插入中文亂碼現(xiàn)象在mysql命令行里執(zhí)行insert插入的中文姓名和地址select查出來全是問號(hào)或者亂碼。原因客戶端連接字符集和數(shù)據(jù)庫存儲(chǔ)字符集不一致。MySQL 5.7及更早版本里客戶端默認(rèn)字符集可能是latin1中文按latin1存進(jìn)去讀出來自然亂。8.0默認(rèn)已經(jīng)是utf8mb4這類問題少了很多但碰到老數(shù)據(jù)庫或者字符集被改過的庫照樣會(huì)亂碼。解決建庫時(shí)顯式指定字符集Workbench建庫彈窗里把字符集選成utf8mb4或者SQL語句寫成CREATE SCHEMA database_2 DEFAULT CHARACTER SET utf8mb4。已經(jīng)建好的庫連接后在命令行先執(zhí)行set names utf8mb4;再執(zhí)行插入和查詢。set names是設(shè)置當(dāng)前會(huì)話的客戶端字符集只對當(dāng)前連接生效重新登錄后需要再執(zhí)行。這是最快速的處理方式不用改表結(jié)構(gòu)。6. 驗(yàn)證安裝的兩種方式服務(wù)狀態(tài)與SQL版本查詢裝完MySQL并跑通增刪改查之后還有兩個(gè)一分鐘內(nèi)能完成的驗(yàn)證動(dòng)作能確認(rèn)這套環(huán)境是真的穩(wěn)定可用而不是“碰巧跑通了”。第一個(gè)是服務(wù)層面的驗(yàn)證。用管理員cmd執(zhí)行net start mysql80正常情況會(huì)提示“請求的服務(wù)已啟動(dòng)”或者“服務(wù)已經(jīng)啟動(dòng)”。如果提示別的說明服務(wù)配置有問題趁早處理。第二個(gè)是SQL層面的驗(yàn)證登錄后執(zhí)行select version();能返回類似8.0.36這樣的版本號(hào)說明root密碼正確、客戶端能連通服務(wù)端、Server主程序正常。兩個(gè)都過這套環(huán)境才算真正驗(yàn)收完。順帶一個(gè)追加驗(yàn)證登錄后執(zhí)行show variables like %character%;把返回結(jié)果里Character Set相關(guān)項(xiàng)掃一眼確認(rèn)默認(rèn)字符集是utf8mb4而不是latin1這一步能提前消掉第5章說的中文亂碼隱患。看到utf8mb4就可以放心往里寫中文數(shù)據(jù)。最后一個(gè)提效習(xí)慣把常用命令做成一個(gè)啟動(dòng)腳本。新建一個(gè)文本文檔寫入net start mysql80 mysql -uroot -p保存后把后綴名改成bat放到桌面。以后電腦重啟或服務(wù)被手動(dòng)停止后雙擊這個(gè)bat輸入root密碼就直接進(jìn)命令行不用每次先找服務(wù)管理器再找cmd。數(shù)據(jù)庫連接配置里填寫的端口、密碼也可以順手記在這個(gè)bat同目錄下的文本里作為本機(jī)環(huán)境備忘。這套安裝教程的完整圖文步驟和SQL示例我整理成了可直接照做的資源建議下載到本地裝新機(jī)器或者做課程作業(yè)時(shí)直接對照能少走不少彎路。從那以后我每次在新機(jī)器上裝完MySQL都強(qiáng)制走一遍net start select version()確認(rèn)服務(wù)名、root密碼、版本號(hào)三個(gè)信息沒問題才開始建庫。這三個(gè)確認(rèn)項(xiàng)看起來簡單卻幫我避開了好幾次“裝了半天最后發(fā)現(xiàn)密碼記錯(cuò)”的返工。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取