鄭戟明 楊年華
摘要:MySQL是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù),因其體積小、速度快、可靠性高等特點(diǎn)而被廣泛應(yīng)用。各個(gè)高校也把MySQL數(shù)據(jù)庫(kù)作為計(jì)算機(jī)基礎(chǔ)教學(xué)課程廣泛開(kāi)設(shè)。文章通過(guò)對(duì)MySQL數(shù)據(jù)庫(kù)課程教學(xué)過(guò)程的總結(jié),并結(jié)合學(xué)生學(xué)習(xí)的反饋情況,對(duì)MySQL課堂教學(xué)中常見(jiàn)問(wèn)題進(jìn)行分析探討,同時(shí)提出相應(yīng)的解決方法。
關(guān)鍵詞:MySQL;數(shù)據(jù)庫(kù);WorkBench;課堂教學(xué)
中圖分類(lèi)號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)04-0170-03
Abstract: MySQL is an open source relational database. It is widely used because of its small size, high speed and high reliability. MySQL database is widely offered as a computer course in Colleges and universities. Through the summary of the teaching process of MySQL database course, combined with the feedback of students' learning, this paper analyzes and discusses the common problems in MySQL classroom teaching, and gives the corresponding solutions.
Key words: MySQL; data base; WorkBench; classroom teaching
目前,許多MySQL數(shù)據(jù)庫(kù)相關(guān)課程已經(jīng)在各大高校各個(gè)專(zhuān)業(yè)廣泛開(kāi)設(shè),成為計(jì)算機(jī)教學(xué)中必不可少基礎(chǔ)應(yīng)用課程。但在MySQL數(shù)據(jù)庫(kù)課程的學(xué)習(xí)過(guò)程中,作為初學(xué)者的學(xué)生會(huì)遇到各種各樣的問(wèn)題,解決方法也不盡相同,有些較為復(fù)雜的問(wèn)題常常會(huì)令學(xué)生束手無(wú)策,而且這一情況往往貫穿整個(gè)學(xué)習(xí)過(guò)程,不少學(xué)生因此而產(chǎn)生了畏難情緒,從而影響到整個(gè)課程的學(xué)習(xí)。所以非常有必要將MySQL課堂教學(xué)中常見(jiàn)問(wèn)題一一找出來(lái),并加以分析探討,給出合理的解決方法,使學(xué)生能夠快速解決好在學(xué)習(xí)過(guò)程中產(chǎn)生的問(wèn)題,同時(shí)對(duì)學(xué)生所學(xué)的數(shù)據(jù)庫(kù)知識(shí)能夠加以鞏固和拓展。本文基于MySQL5.7和Windows操作系統(tǒng)對(duì)MySQL課堂教學(xué)中常見(jiàn)問(wèn)題進(jìn)行探討和分析。
1 MySQL數(shù)據(jù)庫(kù)安裝過(guò)程中存在的問(wèn)題
MySQL數(shù)據(jù)庫(kù)安裝屬于數(shù)據(jù)庫(kù)最基本的操作范圍,本身難度并不太高,但是由于學(xué)生在安裝過(guò)程中對(duì)一些細(xì)節(jié)的忽視,導(dǎo)致安裝失敗。
1.1 MySQL數(shù)據(jù)庫(kù)使用環(huán)境的配置問(wèn)題
在安裝MySQL5.7以前,需要保證系統(tǒng)中已經(jīng)安裝如下好Microsoft 相關(guān)組件:
lMicrosoft .NET Framework 4.0以上
lVisual C++ Redistributable for Visual Studio 2013(x86)
lVisual C++ Redistributable for Visual Studio 2013(x64)
lVisual C++ Redistributable for Visual Studio 2015(x86)
lVisual C++ Redistributable for Visual Studio 2015(x64)
如果系統(tǒng)中缺少以上Microsoft 相關(guān)組件,那么在安裝MySQL5.7時(shí),就會(huì)缺少M(fèi)ySQL部分模塊,導(dǎo)致安裝失敗,所以Microsoft 相關(guān)組件安裝是必不可少的。
此外,還需要注意的是,如果系統(tǒng)中已經(jīng)安裝了Visual C++ Redistributable for Visual Studio 2017,那么Visual C++ Redistributable for Visual Studio 2015是無(wú)法安裝的,需要卸載2017版本的,再安裝2015版本。
1.2 MySQL環(huán)境變量的配置問(wèn)題
在成功安裝了MySQL以后,有時(shí)候在使用MySQL時(shí),必須首先要指定路徑才能進(jìn)入數(shù)據(jù)庫(kù),也就是需要進(jìn)入MySQL安裝目錄下的bin目錄,如C:\Program Files\MySQL\MySQL Server 5.7\bin。如果每次這樣操作太過(guò)繁瑣,這時(shí)候就需要通過(guò)MySQL環(huán)境變量的配置來(lái)解決問(wèn)題。具體操作方法如下:
首先在Windows“資源管理器”選擇“此電腦”點(diǎn)擊右鍵,選擇“屬性”;在打開(kāi)的“系統(tǒng)”窗口左側(cè)欄中選擇“高級(jí)系統(tǒng)設(shè)置”;在“系統(tǒng)屬性”窗口點(diǎn)擊“環(huán)境變量”按鈕;在“環(huán)境變量”窗口“系統(tǒng)變量”一欄中,選擇“path”,點(diǎn)擊“編輯”;在“編輯環(huán)境變量”窗口點(diǎn)擊“新建”,添加路徑C:\Program Files\MySQL\MySQL Server 5.7\bin。
1.3 MySQL重新安裝問(wèn)題
在MySQL安裝過(guò)程中,因?yàn)楦鞣N原因?qū)е掳惭b失敗,無(wú)法使用MySQL,這時(shí)候需要重新安裝MySQL。在重新安裝前,必須要卸載前一次安裝所產(chǎn)生的各種文件,而且一定要卸載徹底,否則會(huì)導(dǎo)致重新安裝失敗。具體操作方法如下:
首先在Windows程序列表中運(yùn)行MySQL Installer命令;在打開(kāi)的“installer”窗口中選擇“Remove”;在窗口中勾選“Product”選項(xiàng),點(diǎn)擊“Execute”按鈕,卸載所以MySQL組件。
此外,在資源管理器中分別打開(kāi)C:\Program Files、C:\Program Files (x86)、C:\ProgramData文件夾,如果其中包含有MySQL文件夾,需要?jiǎng)h除。注意C:\ProgramData文件夾為隱藏文件夾,需要在資源管理器中設(shè)置顯示隱藏文件夾。
2 MySQL數(shù)據(jù)庫(kù)使用過(guò)程中存在的問(wèn)題
成功安裝完MySQL后,在啟動(dòng)或使用MySQL過(guò)程中也會(huì)出現(xiàn)一系列問(wèn)題,包括啟動(dòng)MySQL失敗、MySQL服務(wù)無(wú)法啟動(dòng)等問(wèn)題,以及MySQL集成化軟件Workbench無(wú)法啟動(dòng)、無(wú)法導(dǎo)入數(shù)據(jù)等問(wèn)題。
2.1 MySQL啟動(dòng)失敗的問(wèn)題
啟動(dòng)MySQL時(shí),需要在命令行客戶端輸入密碼,輸入密碼后可能會(huì)出現(xiàn)MySQL系統(tǒng)閃退的情況,導(dǎo)致MySQL無(wú)法啟動(dòng)。解決問(wèn)題的方法是,在命令行窗口中輸入CD C:\Program Files\MySQL\MySQL Server 5.7\bin命令,進(jìn)入到bin目錄下;然后輸入mysqld.exe –install命令,運(yùn)行后就會(huì)出現(xiàn)成功的提示;最后再次輸入net start mysql就可以了。
此外,導(dǎo)致出現(xiàn)MySQL系統(tǒng)閃退的另一個(gè)原因是登錄密碼錯(cuò)誤。
2.2? WorkBench無(wú)法啟動(dòng)的問(wèn)題
有時(shí)MySQL系統(tǒng)安裝成功,MySQL服務(wù)啟動(dòng)正常,命令行中輸入命令都可以執(zhí)行,但在運(yùn)行MySQL集成化軟件WorkBench時(shí)卻仍然無(wú)法啟動(dòng)。解決問(wèn)題的方法是,在Windows資料管理器通過(guò)下面路徑找到C:\Users\Administrator\AppData\Roaming\MySQL\Workbench,然后刪除Workbench文件夾,再去重新啟動(dòng)Workbench。注意AppData文件夾,是隱藏文件夾,需要在資源管理器中設(shè)置顯示隱藏文件夾。
2.3 WorkBench無(wú)法導(dǎo)入數(shù)據(jù)庫(kù)的問(wèn)題
在使用WorkBench時(shí),常常會(huì)出現(xiàn)無(wú)法導(dǎo)入數(shù)據(jù)庫(kù)數(shù)據(jù)的問(wèn)題,在數(shù)據(jù)庫(kù)列表中有導(dǎo)入的數(shù)據(jù)庫(kù)名稱,但該數(shù)據(jù)庫(kù)中沒(méi)有任何對(duì)象和內(nèi)容。之所以出現(xiàn)上述問(wèn)題,一般是由于計(jì)算機(jī)名為中文的緣故。WorkBench在導(dǎo)入數(shù)據(jù)庫(kù)時(shí),需要往TEMP里寫(xiě)一個(gè)文件,而TEMP在Users\用戶名\AppData里,如果用戶名是中文的,就會(huì)因?yàn)?WorkBench 寫(xiě)入中文路徑下的 TEMP文件造成出錯(cuò)。解決問(wèn)題的方法是,將環(huán)境變量中用戶變量欄TEMP和TMP兩個(gè)變量的值都修改為無(wú)中文的路徑,如C:\AppDate\Local\Temp。其中關(guān)于打開(kāi)環(huán)境變量設(shè)置窗口的步驟前文已有講解。
2.4 WorkBench中無(wú)法顯示MySQL自帶數(shù)據(jù)庫(kù)的問(wèn)題
登錄MySQL系統(tǒng)后,在命令行輸入SHOW DATABASES;命令,可以查看到系統(tǒng)中所有的數(shù)據(jù)庫(kù),包括MySQL自帶數(shù)據(jù)庫(kù),如information_schema、performance_schema、mysql、sys等。但是進(jìn)入Workbench后,卻發(fā)現(xiàn)在數(shù)據(jù)庫(kù)列表中看不到這些數(shù)據(jù)庫(kù),這是因?yàn)樵赪orkbench中這些數(shù)據(jù)庫(kù)是隱藏的。當(dāng)需要查看和使用這些數(shù)據(jù)庫(kù)時(shí),可以通過(guò)如下方法設(shè)置,通過(guò)“Edit”菜單中的“Preferences”命令,打開(kāi)“Workbench Preferences”窗口;選擇左邊列表中的“SQL Editor”,然后把“Show Metadata and Internal Schemas”前面的復(fù)選框給勾上,點(diǎn)擊“OK”按鈕;最后在Schemas中刷新數(shù)據(jù)庫(kù),可以顯示隱藏?cái)?shù)據(jù)庫(kù)了。
3 MySQL數(shù)據(jù)庫(kù)root密碼重置的問(wèn)題
在MySQL數(shù)據(jù)庫(kù)中,root用戶是超級(jí)管理員,具有很多的權(quán)限,因此該用戶的密碼一旦丟失,就會(huì)造成數(shù)據(jù)庫(kù)無(wú)法登錄、無(wú)法操作等許多問(wèn)題。對(duì)于這種情況,MySQL提供了相應(yīng)的處理方法,可以通過(guò)特殊途徑登錄到MySQL系統(tǒng),然后重新為root用戶設(shè)置密碼。root密碼重置過(guò)程較為復(fù)雜,大致包含以下五個(gè)步驟。
3.1 停止當(dāng)前MySQL服務(wù)
從Windows程序列表中選擇“Windows管理工具”中的“服務(wù)”,打開(kāi)服務(wù)窗口;找到“MYSQL57”的服務(wù),鼠標(biāo)雙擊該服務(wù);在打開(kāi)的“MYSQL的屬性(本地計(jì)算機(jī))”窗口中點(diǎn)擊“停止”按鈕,這樣就可以停止當(dāng)前MySQL的服務(wù)。
3.2 修改MySQL的配置文件my.ini
按照提供的路徑C:\ProgramData\MySQL\MySQL Server 5.7,找到my.ini文件,該文件是文本文件,可以使用記事本等編輯器編輯。打開(kāi)該文檔,在文檔中mysqld標(biāo)識(shí)下,添加一句代碼 skip-grant-tables ,該句代碼的作用是在啟動(dòng)MySQL系統(tǒng)時(shí)跳過(guò)對(duì)各種權(quán)限的審核,也就跳過(guò)輸入密碼過(guò)程。
3.3 重新啟動(dòng)MySQL服務(wù)
參照3.1中的方法,打開(kāi)“MYSQL的屬性(本地計(jì)算機(jī))”窗口中點(diǎn)擊“啟動(dòng)”按鈕,這樣就可以重新啟動(dòng)MySQL的服務(wù)。
3.4 利用root用戶登錄MySQL系統(tǒng)
重啟服務(wù)后,使用root用戶登錄MySQL系統(tǒng),這時(shí)候不必指定用戶名,主機(jī)名和密碼,可以跳過(guò)密碼的輸入直接登錄MySQL系統(tǒng)。如果是使用WorkBench登錄MySQL也同樣不需要輸入密碼,直接進(jìn)入系統(tǒng)。
3.5 為root用戶設(shè)置新密碼
進(jìn)入MySQL系統(tǒng)后,就可以為root用戶設(shè)置新密碼了。通常使用ALTER USER語(yǔ)句來(lái)設(shè)置root用戶密碼,語(yǔ)句如下“ALTER USER 'root'@'localhost' IDENTIFIED BY '******';”。
注意如果在上述語(yǔ)句運(yùn)行過(guò)程中出現(xiàn)MySQL報(bào)錯(cuò),提示下面錯(cuò)誤“The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement.”,這是因?yàn)橄到y(tǒng)權(quán)限未刷新,請(qǐng)先運(yùn)行語(yǔ)句“flush privileges;”,進(jìn)行重新加載權(quán)限。
3.6 使用新密碼重新登錄
經(jīng)過(guò)上面五部操作,完成了MySQL數(shù)據(jù)庫(kù)root密碼重置,可以使用新密碼重新登錄。不過(guò)此種方式存在非常大的安全風(fēng)險(xiǎn),因此在實(shí)際應(yīng)用過(guò)程中要謹(jǐn)慎使用。
4 結(jié)束語(yǔ)
本文基于多年MySQL數(shù)據(jù)庫(kù)課程教學(xué)的積累,通過(guò)對(duì)教學(xué)手段和方法的探索和總結(jié),結(jié)合了學(xué)生在學(xué)習(xí)過(guò)程中產(chǎn)生的各種問(wèn)題,對(duì)一系列MySQL課堂教學(xué)中常見(jiàn)問(wèn)題,進(jìn)行分析解答,幫助學(xué)生能較快理解和掌握MySQL數(shù)據(jù)庫(kù)的基本操作,使得教學(xué)過(guò)程得以順利進(jìn)行。
參考文獻(xiàn):
[1] 黑馬程序員.? MySQL數(shù)據(jù)庫(kù)原理、設(shè)計(jì)與應(yīng)用[M]. 北京:清華大學(xué)出版社,2019.
[2] 孔祥盛.? MySQL數(shù)據(jù)庫(kù)與實(shí)例教程[M]. 北京:人民郵電出版社,2014.
[3] 李輝, 等. 數(shù)據(jù)庫(kù)系統(tǒng)原理及 MySQL應(yīng)用教程[M]. 北京:機(jī)械工業(yè)出版社,2015.
[4] 蘇俊豪. 高校數(shù)據(jù)庫(kù)原理課程實(shí)驗(yàn)教學(xué)設(shè)計(jì)研究[J]. 電腦知識(shí)與技術(shù), 2020(6): 138-139.
[5] 胡強(qiáng).? MySQL數(shù)據(jù)庫(kù)常見(jiàn)問(wèn)題分析與研究[J]. 電腦編程技巧與維護(hù),2019(12):91-92.
[6] 孟程,黃建國(guó). MySQL數(shù)據(jù)庫(kù)課程教學(xué)的探索與研究[J]. 科技創(chuàng)新導(dǎo)報(bào),2019(15):190-191.
[7] 趙學(xué)作.? MySQL8.0的安裝與調(diào)試[J]. 系統(tǒng)維護(hù)與管理,2019(12):95-97.
[8] 胡文海. 高校數(shù)據(jù)庫(kù)課程教學(xué)模式研究[J]. 教育教學(xué)論壇, 2020(1): 90-91.
【通聯(lián)編輯:王力】