實(shí)驗(yàn)1 MySQL數(shù)據(jù)庫服務(wù)器配置(預(yù)備知識:第1,2章;分值:16分;需輔導(dǎo)教師評分)
1.實(shí)驗(yàn)?zāi)康?/span>
掌握MySQL的安裝方法, 練習(xí)MySQL數(shù)據(jù)庫服務(wù)器的使用,理解MySQL服務(wù)器的組成,掌握MySQL服務(wù)器的配置方法。
2.實(shí)驗(yàn)內(nèi)容
【實(shí)驗(yàn)1-1】下載當(dāng)前最新版本的MySQL,或者之前某個(gè)版本的MySQL,并在Windows上完成安裝。
【實(shí)驗(yàn)1-2】安裝完畢后,找到MySQL的配置文件;并查看初始化配置文件的內(nèi)容。
【實(shí)驗(yàn)1-3】使用start和stop命令啟動(dòng)和關(guān)閉mysql數(shù)據(jù)庫。
【實(shí)驗(yàn)1-4】連接到MySQL服務(wù)器,連接成功后是一個(gè)mysql>的提示。
【實(shí)驗(yàn)1-5】在MySQL數(shù)據(jù)庫服務(wù)器端找到錯(cuò)誤日志文件,并查看錯(cuò)誤日志的內(nèi)容。
【實(shí)驗(yàn)1-6】通過初始化配置文件,啟用二進(jìn)制日志、慢查詢?nèi)罩竞屯ㄓ貌樵內(nèi)罩尽?/span>
【實(shí)驗(yàn)1-7】查看二進(jìn)制日志、慢查詢?nèi)罩竞屯ㄓ貌樵內(nèi)罩镜膬?nèi)容。
【實(shí)驗(yàn)1-8】關(guān)閉二進(jìn)制日志、慢查詢?nèi)罩竞屯ㄓ貌樵內(nèi)罩尽?/span>
【實(shí)驗(yàn)1-9】用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫,使用SHOW DATABASES命令查看顯示所有數(shù)據(jù)庫,可以看到新建的數(shù)據(jù)庫名稱。
【實(shí)驗(yàn)1-10】使用Workbench圖形化管理工具創(chuàng)建數(shù)據(jù)庫。
【實(shí)驗(yàn)1-11】使用SHOW STATUS命令查看系統(tǒng)狀態(tài)參數(shù);使用SHOW VARIABLES命令查看服務(wù)器變量設(shè)置。
【實(shí)驗(yàn)1-12】使用命令“select @@basedir”和“select @@datadir”尋找到MySQL的安裝目錄和數(shù)據(jù)存放目錄。
【實(shí)驗(yàn)1-13】使用SHOW ENGINES查看所有引擎,在配置文件中更改默認(rèn)存儲引擎default-storage-engine變量,改為MyISAM。重啟MySQL,查看默認(rèn)存儲引擎是否改變。
【實(shí)驗(yàn)1-14】創(chuàng)建一個(gè)數(shù)據(jù)表t_myisam(id int auto_increment, name varchar(30),primary key(id)),創(chuàng)建時(shí)顯式指定存儲引擎為MyISAM。使用“ALTER TABLE TABLE_NAME ENGINE=ENGINE_NAME”語句,更改表t_myisam的存儲引擎為InnoDB。
【實(shí)驗(yàn)1-15】使用“SHOW TABLE STATUS FROM DB_NAME WHERE NAME =’TABLE_NAME’”和“SHOW CREATE TABLE TABLE_NAME”命令查看數(shù)據(jù)庫DB_NAME下表TABLE_NAME的存儲引擎。
【實(shí)驗(yàn)1-16】InnoDB的I/O相關(guān)配置,根據(jù)公式:
事務(wù)日志的總大小= Innodb_log_files_size *Innodb_log_files_in_group
來設(shè)置64M大小的事務(wù)日志緩沖區(qū)并設(shè)置在每次事務(wù)提交執(zhí)行l(wèi)og寫入cache,并flush到磁盤。
3.實(shí)驗(yàn)要求
(1)所有操作均在命令行或者M(jìn)ySQL Workbench中完成。
(2)將操作過程以屏幕抓圖的方式復(fù)制,形成實(shí)驗(yàn)文檔,并對照本章內(nèi)容寫出分析報(bào)告。
實(shí)驗(yàn)2 MySQL數(shù)據(jù)庫對象管理(預(yù)備知識:第3章;分值:16分;需輔導(dǎo)教師評分)
1. 實(shí)驗(yàn)?zāi)康?/span>
理解數(shù)據(jù)字典、表、索引、視圖的作用, 掌握數(shù)據(jù)字典的操縱方式,掌握庫、表、索引、視圖的操作方法。
2. 實(shí)驗(yàn)內(nèi)容
【實(shí)驗(yàn)2-1】查看INFORMATION_SCHEMA.SCHEMATA 表中的信息。
【實(shí)驗(yàn)2-2】查看INFORMATION_SCHEMA.TABLES 表中的信息。
【實(shí)驗(yàn)2-3】查看INFORMATION_SCHEMA.COLUMNS 表中的信息。
【實(shí)驗(yàn)2-4】查看INFORMATION_SCHEMA.STATISTICS 表中的信息。
【實(shí)驗(yàn)2-5】查看INFORMATION_SCHEMA.CHARACTER_SETS 表中的信息。
【實(shí)驗(yàn)2-6】查看INFORMATION_SCHEMA.COLLATIONS表中的信息。
【實(shí)驗(yàn)2-7】使用CREATE DABASE語句創(chuàng)建school數(shù)據(jù)庫。
【實(shí)驗(yàn)2-8】將school數(shù)據(jù)庫的字符集設(shè)為utf-8。
【實(shí)驗(yàn)2-9】在school數(shù)據(jù)庫下創(chuàng)建stu_info表,包括stuno varchar(10)、stuname varchar(8)、stubir date、stuage int;創(chuàng)建表course,包括courno varchar(3)、courname varchar(10)、schyear date、credit int;創(chuàng)建stuandcour表,包括stuno varchar(10)、courno varchar(3)、grade int。
【實(shí)驗(yàn)2-10】使用SHOW、DESCRIBE語句查看所建的表。
【實(shí)驗(yàn)2-11】使用ALTER TABLE語句將stuinfo表的表名改為stuinfo,并且增加stugender varchar(4)字段,將course表中courno字段的類型改為varchar(5)。
【實(shí)驗(yàn)2-12】將前邊建的表復(fù)制到test數(shù)據(jù)庫中,如果沒有test數(shù)據(jù)庫就新建一個(gè)。
【實(shí)驗(yàn)2-13】刪除test數(shù)據(jù)庫中的course表。
【實(shí)驗(yàn)2-14】創(chuàng)建stuinfo表上stuno的索引。
【實(shí)驗(yàn)2-15】創(chuàng)建stuandcour表上stuno字段和courno字段上的多列索引。
【實(shí)驗(yàn)2-16】刪除創(chuàng)建的索引。
【實(shí)驗(yàn)2-17】創(chuàng)建stuinfo表上的單源視圖。
【實(shí)驗(yàn)2-18】創(chuàng)建stuinfo表和stuandcour上的多源視圖,包含stuno、stuname、courno、grade。
【實(shí)驗(yàn)2-19】分別通過訪問information_schema的views表和tables表,查看已經(jīng)創(chuàng)建好的視圖;使用DESCRIBE語句查看已經(jīng)創(chuàng)建好的視圖。
【實(shí)驗(yàn)2-20】使用SELECT語句查詢創(chuàng)建好的視圖。
3. 實(shí)驗(yàn)要求
(1)所有操作均在命令行或者M(jìn)ySQL Workbench中完成。
(2)將操作過程以屏幕抓圖的方式復(fù)制,形成實(shí)驗(yàn)文檔,并對照本章內(nèi)容寫出分析報(bào)告。
實(shí)驗(yàn)3 數(shù)據(jù)庫安全性與完整性控制實(shí)驗(yàn)(預(yù)備知識:第4章;分值:16分;需輔導(dǎo)教師評分)
1.實(shí)驗(yàn)?zāi)康?/span>
練習(xí)安全性授權(quán)方法、 安全性和完整性查看的操作方法。
2.實(shí)驗(yàn)內(nèi)容
【實(shí)驗(yàn)3-1】使用create user創(chuàng)建用戶,創(chuàng)建單個(gè)用戶teacher,創(chuàng)建兩個(gè)用戶teacher1和student。
【實(shí)驗(yàn)3-2】通過直接操作MySQL用戶表創(chuàng)建用戶,創(chuàng)建單個(gè)用戶teacher2,創(chuàng)建兩個(gè)用戶teacher3和student2(請注意,新版的MySQL可能不支持使用此方法創(chuàng)建新用戶)。
【實(shí)驗(yàn)3-3】新建一個(gè)terminal窗口,使用mysql –u –h -p方式登錄teacher。
【實(shí)驗(yàn)3-4】再次新建一個(gè)terminal窗口,使用mysql –u –h -p方式登錄student。
【實(shí)驗(yàn)3-5】使用GRANT語句對用戶student賦予所有數(shù)據(jù)庫所有表的insert權(quán)限和update權(quán)限。
【實(shí)驗(yàn)3-6】使用GRANT語句對用戶student賦予school數(shù)據(jù)庫所有表的select權(quán)限。
【實(shí)驗(yàn)3-7】使用GRANT語句對用戶student賦予school數(shù)據(jù)庫stuinfo表的create訪問權(quán)限。
【實(shí)驗(yàn)3-8】使用GRANT語句對用戶student賦予school數(shù)據(jù)庫stuinfo表的stuno列上的select訪問權(quán)限。
【實(shí)驗(yàn)3-9】使用GRANT語句對用戶student賦予s所有數(shù)據(jù)庫所有表的select訪問權(quán)限,并設(shè)定student每小時(shí)最多可使用select操作訪問數(shù)據(jù)庫的次數(shù)。
【實(shí)驗(yàn)3-10】查看表INFORMATION_SCHEMA.USER_PRIVILEGES中有關(guān)student的信息,查看user表中的內(nèi)容信息。
【實(shí)驗(yàn)3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school數(shù)據(jù)庫下?lián)碛械臋?quán)限。
【實(shí)驗(yàn)3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school數(shù)據(jù)庫中stuinfo數(shù)據(jù)表相關(guān)的表權(quán)限。
【實(shí)驗(yàn)3-13】查看表INFORMATION_SCHEMA.COLUMN_PRIVILEGES,查找用戶sutdent的其中一條記錄,其數(shù)據(jù)庫為school,表名為stuinfo,列名為stuno,查看其授予權(quán)限類型。
【實(shí)驗(yàn)3-14】首先進(jìn)入school數(shù)據(jù)庫,如果沒有,創(chuàng)建一個(gè)school數(shù)據(jù)庫。
創(chuàng)建stuinfo表,包括stuno varchar(10)(加非空約束和主鍵約束)、stuname varchar(8)、stubir date、stuage int。
創(chuàng)建表course,包括courno varchar(3)(非空約束)、courname varchar(10)、schyear date(非空約束)、credit int,主鍵為課程號courno和學(xué)年schyear。
創(chuàng)建stuandcour表,包括stuno varchar(10)、courno varchar(3)、chono varchar(10),定義其主鍵為選課號chono,stuno為外鍵,參考stuinfo中的stuno列。
上述操作完成后,繼續(xù)向stuandcour數(shù)據(jù)表中添加新的字段schyear date,添加外鍵(courno,schyear)參照course表中的courno,并刪除時(shí)置空值。
【實(shí)驗(yàn)3-15】查看表INFORMATION_SCHEMA.TABLES——存放數(shù)據(jù)庫中所有數(shù)據(jù)庫表信息,所得到的記錄值有很多條,然后觀察其內(nèi)部字段表示,進(jìn)一步篩選表名為stuinfo的記錄,school數(shù)據(jù)庫stuinfo表的所有基本信息都在這里描述。
【實(shí)驗(yàn)3-16】查看表INFORMATION_SCHEMA.TABLE_CONSTRAINTS——存放表中所存在的約束信息。進(jìn)一步篩選表名為stuandcour的記錄信息,可以看到關(guān)于該表有三條約束信息,與我們設(shè)定的一樣,其擁有兩個(gè)外鍵和一個(gè)主鍵。盡管這三種約束涉及四個(gè)列字段,但是基于表層面還是三個(gè)約束,因?yàn)橛幸粋€(gè)外鍵是由兩個(gè)列組成的。
【實(shí)驗(yàn)3-17】查看表INFORMATION_SCHEMA.KEY_COLUMN_USAGE——存放數(shù)據(jù)庫里所有具有約束的鍵信息,然后通過對表名篩選,選出表stuandcour的所有以列為單位的約束信息,通過觀察可以得出該查詢結(jié)果與table級別約束的查詢結(jié)果個(gè)數(shù)不同,這里出現(xiàn)四個(gè)結(jié)果,列名COLUMN_NAME部分涉及stuandcour表中所有約束包含的全部列。據(jù)我們所知,stuandcour表的主鍵為chono,為第一行結(jié)果;第一個(gè)外鍵只有一列,該列為stuno,出現(xiàn)在第二行結(jié)果;第二個(gè)外鍵含有兩列,分別為courno、schyear,出現(xiàn)在第三行、第四行。
3.實(shí)驗(yàn)要求
(1)所有操作均在命令行或者M(jìn)ySQL Workbench中完成。
(2)將操作過程以屏幕抓圖的方式復(fù)制,形成實(shí)驗(yàn)文檔,并對照本章內(nèi)容寫出分析報(bào)告。
實(shí)驗(yàn)4 數(shù)據(jù)庫備份與恢復(fù)實(shí)驗(yàn)(預(yù)備知識:第5章;分值:16分;需輔導(dǎo)教師評分)
1.實(shí)驗(yàn)?zāi)康?/span>
練習(xí)數(shù)據(jù)庫備份與恢復(fù)的操作方法。 說明:實(shí)驗(yàn)過程中可以使用MySQL官網(wǎng)提供實(shí)例employees數(shù)據(jù)庫,下載地址為https://launchpad.net/test-db/employees-db-1/1.0.6,也可以自己創(chuàng)建數(shù)據(jù)庫進(jìn)行備份恢復(fù)實(shí)驗(yàn)。
2.實(shí)驗(yàn)內(nèi)容
【實(shí)驗(yàn)5-1】使用select…into…outfile語句對數(shù)據(jù)庫employees的表departments進(jìn)行數(shù)據(jù)導(dǎo)出。
【實(shí)驗(yàn)5-2】使用select…into…outfile語句對數(shù)據(jù)庫employees的表salaries進(jìn)行數(shù)據(jù)導(dǎo)出,并使用fields字句指定字段值之間的符號分隔符為“,”,字段的包裹符號為“””。
【實(shí)驗(yàn)5-3】 使用mysqldump命令備份數(shù)據(jù)庫中的某個(gè)表,對數(shù)據(jù)庫employees的表deparments導(dǎo)出SQL語句。
【實(shí)驗(yàn)5-4】 使用mysqldump命令備份單個(gè)數(shù)據(jù)庫,對數(shù)據(jù)庫employees的導(dǎo)出SQL語句,并忽略數(shù)據(jù)表departments。
【實(shí)驗(yàn)5-5】使用mysqldump命令備份多個(gè)數(shù)據(jù)庫,對數(shù)據(jù)庫employees、test兩個(gè)數(shù)據(jù)庫導(dǎo)出SQL語句。
【實(shí)驗(yàn)5-6】使用mysqldump命令導(dǎo)出界定格式文件數(shù)據(jù),對數(shù)據(jù)庫employees進(jìn)行CSV文件數(shù)據(jù)的導(dǎo)出。
【實(shí)驗(yàn)5-7】使用圖形化工具M(jìn)ySQL Workbench導(dǎo)出數(shù)據(jù)庫employees的表departments的CSV格式數(shù)據(jù)。
【實(shí)驗(yàn)5-8】使用圖形化工具M(jìn)ySQL Workbench導(dǎo)出數(shù)據(jù)庫employees的表departments的SQL文件。
【實(shí)驗(yàn)5-9】使用DELETE語句刪除employees數(shù)據(jù)庫的表departments的表格數(shù)據(jù),使用LOAD DATA INFILE語句,通過【實(shí)驗(yàn)5-1】導(dǎo)出的文件,對刪除的數(shù)據(jù)進(jìn)行恢復(fù),并使用SELECT語句對恢復(fù)的數(shù)據(jù)進(jìn)行檢查。
【實(shí)驗(yàn)5-10】 使用DELETE語句刪除employees數(shù)據(jù)的表salaries的表格數(shù)據(jù),使用LOAD DATA INFILE語句以及FIELDS子句,通過【實(shí)驗(yàn)5-2】導(dǎo)出的文件,對刪除的數(shù)據(jù)進(jìn)行恢復(fù),即字段值之間的符號分隔符為“,”,字段的包裹符號為“””。
【實(shí)驗(yàn)5-11】使用DELETE語句刪除employees數(shù)據(jù)的表salaries的表格數(shù)據(jù),使用mysqlimport命令,通過【實(shí)驗(yàn)5-2】導(dǎo)出的文件,對刪除的數(shù)據(jù)進(jìn)行恢復(fù),即字段值之間的符號分隔符為“,”,字段的包裹符號為“””。
【實(shí)驗(yàn)5-12】使用DROP命令employees數(shù)據(jù)庫下的除departments的所有數(shù)據(jù)表及其數(shù)據(jù),使用mysql命令行工具,通過【實(shí)驗(yàn)5-4】導(dǎo)出的SQL文件恢復(fù)刪除的數(shù)據(jù)。
【實(shí)驗(yàn)5-13】使用DROP命令刪除數(shù)據(jù)庫employees和數(shù)據(jù)庫test,使用SOURCE語句,通過【實(shí)驗(yàn)5-5】導(dǎo)出的SQL文件恢復(fù)刪除的數(shù)據(jù)。
【實(shí)驗(yàn)5-14】 刪除數(shù)據(jù)庫employees的表departments中的數(shù)據(jù),使用圖形化工具M(jìn)ySQL Workbench,通過【實(shí)驗(yàn)5-7】恢復(fù)刪除的數(shù)據(jù)。
【實(shí)驗(yàn)5-15】刪除數(shù)據(jù)庫employees的表departments及其數(shù)據(jù),使用圖形化工具M(jìn)ySQL Workbench,通過【實(shí)驗(yàn)5-8】恢復(fù)刪除的數(shù)據(jù)。
【實(shí)驗(yàn)5-16】在時(shí)間點(diǎn)A使用mysqldump命令對數(shù)據(jù)庫employees導(dǎo)出SQL文件,進(jìn)行邏輯備份,備份完成,創(chuàng)建一個(gè)表test,并插入數(shù)據(jù),在時(shí)間點(diǎn)B刪除創(chuàng)建的表test,在時(shí)間點(diǎn)C再次創(chuàng)建一個(gè)表test2,并插入一條數(shù)據(jù)。在這個(gè)操作過程中在時(shí)間點(diǎn)B刪除表test是誤操作。使用mysqlbinlog進(jìn)行基于時(shí)間點(diǎn)的恢復(fù)操作,即經(jīng)過恢復(fù)之后employees數(shù)據(jù)庫中會(huì)同時(shí)存在數(shù)據(jù)表test2和數(shù)據(jù)表test。
3.實(shí)驗(yàn)要求
(1)所有操作均在命令行或者M(jìn)ySQL Workbench中完成。
(2)將操作過程以屏幕抓圖的方式復(fù)制,形成實(shí)驗(yàn)文檔,并對照本章內(nèi)容寫出分析報(bào)告。
實(shí)驗(yàn)5 數(shù)據(jù)庫性能監(jiān)視與優(yōu)化實(shí)驗(yàn)(預(yù)備知識:第六章;分值:16分;需輔導(dǎo)教師評分)
1.實(shí)驗(yàn)?zāi)康?/span>
理解數(shù)據(jù)庫性能概念,練習(xí)數(shù)據(jù)庫性能監(jiān)視命令方法, 能夠?qū)?shù)據(jù)庫性能進(jìn)行優(yōu)化。
2.實(shí)驗(yàn)內(nèi)容
【實(shí)驗(yàn)5-1】使用SHOW語句查詢設(shè)備吞吐量Questions、Com_Select、Com_insert、Com_update、Com_delete幾個(gè)指標(biāo)值。
【實(shí)驗(yàn)5-2】訪問Performance_schema中的events_statements_summary_by_digest表,獲取有關(guān)的延遲、錯(cuò)誤和查詢量信息的性能指標(biāo)。
【實(shí)驗(yàn)5-3】使用SHOW語句查詢連接檢查指標(biāo)Threads_connected、Threads_running、Connection_errors_internal、Aborted_connects和Connection_errors_max_connections。
【實(shí)驗(yàn)5-4】使用SHOW語句查詢Innodb緩沖區(qū)指標(biāo)Innodb_buffer_pool_pages_total、Innodb_buffer_pool_read_requests、Innodb_buffer_pool_reads。
【實(shí)驗(yàn)5-5】使用SHOW語句獲取與查詢緩沖相關(guān)的指標(biāo):Qcache_free_blocks、Qcache_free_memory、Qcache_hits、Qcache_inserts、Qcache_lowmem_prunes、Qcache_not_cached、Qcache_queries_in_cache、Qcache_total_blocks。、
【實(shí)驗(yàn)5-6】使用SHOW語句獲取關(guān)于臨時(shí)表的指標(biāo)Created_tmp_disk_tables、Created_tmp_files、Created_tmp_tables。
【實(shí)驗(yàn)5-7】使用SHOW語句獲取訪問表的數(shù)量指標(biāo)Open_tables和Opened_tables。
【實(shí)驗(yàn)5-8】使用SHOW PROCESSLIST命令查詢用戶正在運(yùn)行的線程信息協(xié)助進(jìn)行故障診斷。
【實(shí)驗(yàn)5-9】調(diào)出慢查詢?nèi)罩静⒗胢ysqldumpslow來進(jìn)行日志分析。
【實(shí)驗(yàn)5-10】使用EXPLAIN EXTENDED命令查看帶有UNION子句的SELECT的執(zhí)行計(jì)劃。
【實(shí)驗(yàn)5-11】使用EXPLAIN EXTENDED命令查看如下語句的執(zhí)行計(jì)劃:
SELECT * FROM t1 WHERE a1<10 AND (
EXISTS (SELECT a2 FROM t2 WHERE t2.a2<5 AND t2.b2=1) OR
EXISTS (SELECT a2 FROM t2 WHERE t2.a2<5 AND t2.b2=2));
【實(shí)驗(yàn)5-12】使用EXPLAIN EXTENDED命令查看如下語句的執(zhí)行計(jì)劃:
SELECT * FROM t1, (SELECT * FROM t2 WHERE t2.a2 >10) v_t2
WHERE t1.a1<10 AND v_t2.a2<20;
【實(shí)驗(yàn)5-13】創(chuàng)建一個(gè)表,并在適當(dāng)字段上創(chuàng)建索引,對比在大數(shù)據(jù)量情形下使用索引與不使用索引的性能。
【實(shí)驗(yàn)5-14】使用PROCEDURE ANALYSE檢查表列。
【實(shí)驗(yàn)5-15】使用Inet_ATON將IP地址192.128.1.1轉(zhuǎn)換為數(shù)字,再將2130706433轉(zhuǎn)換為IP地址。
【實(shí)驗(yàn)5-16】進(jìn)行簡單的關(guān)聯(lián)查詢代替子查詢的重寫操作,并驗(yàn)證其正確性和執(zhí)行效率的變化。
【實(shí)驗(yàn)5-17】查詢SQL的最大連接數(shù)并修改其至合適的數(shù)值。
3.實(shí)驗(yàn)要求
(1)所有操作均在命令行或者M(jìn)ySQL Workbench中完成。
(2)將操作過程以屏幕抓圖的方式復(fù)制,形成實(shí)驗(yàn)文檔,并對照本章內(nèi)容寫出分析報(bào)告。
(3)將操作所使用的命令對應(yīng)的參數(shù)、參數(shù)含義、返回的內(nèi)容、返回內(nèi)容的含義整理到分析報(bào)告中一同給出。
奧鵬,國開,廣開,電大在線,各省平臺,新疆一體化等平臺學(xué)習(xí)
詳情請咨詢QQ : 3230981406或微信:aopopenfd777