MySQL數(shù)據(jù)庫(kù)培訓(xùn)資料ppt課件_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)培訓(xùn)資料ppt課件_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)培訓(xùn)資料ppt課件_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)培訓(xùn)資料ppt課件_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)培訓(xùn)資料ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MySQL數(shù)據(jù)庫(kù)引見(jiàn)深圳市艾派運(yùn)用系統(tǒng)1Mysql簡(jiǎn)介Mysql數(shù)據(jù)庫(kù)簡(jiǎn)介Mysql常用操作Mysql管理維護(hù)Mysql數(shù)據(jù)庫(kù)特點(diǎn)越來(lái)越多的企業(yè)級(jí)特性Mysql數(shù)據(jù)庫(kù)安裝Mysql銜接工具M(jìn)ysql體系構(gòu)造表引擎字符集問(wèn)題常用數(shù)據(jù)類(lèi)型常用Sql語(yǔ)句數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)維護(hù)與修復(fù)用戶(hù)權(quán)限管理MySQL數(shù)據(jù)庫(kù)培訓(xùn)目錄數(shù)據(jù)庫(kù)平安加固2MySQL簡(jiǎn)介MySQL常用操作MySQL管理維護(hù)3常用的數(shù)據(jù)庫(kù)效力器: 商業(yè):oracle, SQLserver,DB2 開(kāi)源:MySQL,postgreSQL,SQLiteMySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2021年

2、1月16號(hào)被Sun公司收買(mǎi)。而2021年,SUN又被Oracle收買(mǎi),對(duì)于Mysql的出路,沒(méi)有任何人抱樂(lè)觀(guān)的態(tài)度.目前 MySQL被廣泛地運(yùn)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有本錢(qián)低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng) 站總體擁有本錢(qián)而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。分規(guī)范版和企業(yè)版本,企業(yè)版本提供Enterprise Monitor工具,目前版本曾經(jīng)到達(dá)MySQL6。MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介4開(kāi)放源代碼小巧易用高性能低本錢(qián)(是ORACLE價(jià)錢(qián)的1/10)高可靠高速開(kāi)展的數(shù)據(jù)庫(kù)幾乎支持一切的平臺(tái)廣泛運(yùn)用在嵌入式、網(wǎng)站運(yùn)用、企業(yè)級(jí)運(yùn)用 J2EE架構(gòu)、.

3、NET架構(gòu)、還有LAMP架構(gòu) 眾多的第三方支持(與LINBIT達(dá)成協(xié)作同伴關(guān)系 )支持web2.0得天獨(dú)厚MySQL數(shù)據(jù)庫(kù)特點(diǎn)5MySQL的技術(shù)進(jìn)展MySQL3.23開(kāi)場(chǎng)支持外鍵(InnoDB)MySQL4.1開(kāi)場(chǎng)支持R-trees索引(MyISAM)MySQL從5.0開(kāi)場(chǎng),全面支持視圖、存儲(chǔ)過(guò)程、函數(shù)和觸發(fā)器功能MySQL5.1支持分區(qū)功能MySQL5.1支持行復(fù)制MySQL6.0將實(shí)現(xiàn)雙向復(fù)制逐漸添加對(duì)非構(gòu)造化數(shù)據(jù)XML的支持特性MySQL6.0將支持最新的FALCON 存儲(chǔ)引擎著名的數(shù)據(jù)庫(kù)巨匠Jim Starkey如今在MySQL開(kāi)發(fā)Falcon。Falcon面向的客戶(hù)是企業(yè)級(jí)用戶(hù)。Or

4、acle跟MySQL簽定了協(xié)作協(xié)議,用戶(hù)可以繼續(xù)選擇InnoDB存儲(chǔ)引擎 越來(lái)越多的企業(yè)級(jí)特性6軟件下載登陸官方網(wǎng)站httpmysql,下載最新的released版本。創(chuàng)建MySQL用戶(hù)和用戶(hù)組#groupadd mysql#useradd -r -g mysql mysql解壓MySQL#cd /usr/local#tar zxvf /opt/mysql-5.5.8-linux2.6-i686.tar.gz#ln -s /usr/local/mysql-5.5.8-linux2.6-i686 mysql7基于Linix/Unix的安裝賦予MySQL用戶(hù)權(quán)限#cd mysql#chown -R

5、 mysql .#chgrp -R mysql .安裝MySQL#scripts/mysql_install_db -user=mysql#chown -R mysql data#cp /usr/local/mysql/support-files/my-smallf /etc/myfMySQL的啟動(dòng)與停頓#bin/mysqld_safe -user=mysql #flush privileges;#update db set host=1 where user=root;#flush privileges;9基于Linix/Unix的安裝10基于Windows的安裝11數(shù)據(jù)庫(kù)配置Windows

6、下數(shù)據(jù)庫(kù)的停用和啟用12MySQL工具M(jìn)ySQL-Front一款小巧的管理MySQL的運(yùn)用程序。主要特性包括多文檔界面,語(yǔ)法突出,拖拽方式的數(shù)據(jù)庫(kù)和表格,可編輯/可添加/刪除的域,可編輯/可插入/刪除的記錄,可顯示的成員,可執(zhí)行的SQL 腳本,提供與外程序接口,保管數(shù)據(jù)到CSV文件等。MySQL AdministratorMySQL Administrator 是用來(lái)執(zhí)行數(shù)據(jù)庫(kù)管理操作的程序和用來(lái)監(jiān)視和管理MySQL實(shí)例內(nèi)的數(shù)據(jù)庫(kù)、用戶(hù)的權(quán)限和數(shù)據(jù)的適用程序,比如說(shuō)配置、控制、開(kāi)啟和封鎖mysql 效力。 MySQL Query BrowserMySQL Query Browser是一個(gè)可視化

7、的toolset,用于創(chuàng)建、執(zhí)行以及最優(yōu)化的MySQL數(shù)據(jù)庫(kù)查詢(xún)。它就像是鑲嵌在Web閱讀器中的一個(gè)集成的拖曳工具套件,為運(yùn)用者提供了一個(gè)更簡(jiǎn)便、更有消費(fèi)力的途徑來(lái)存取、分析存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)效力器中的信息。1314MySQL簡(jiǎn)介MySQL常用操作MySQL管理維護(hù)mysql體系構(gòu)造15設(shè)有張馬虎,李小心兩人,都是地鐵口的自行車(chē)管理員.每天都有很多人來(lái)存取自行車(chē),張馬虎的管理方式是:來(lái)存本人存,不記錄存的是什么車(chē),取時(shí)交5毛,也不檢查取的能否是本人的車(chē).李小心呢,那么在存取本人車(chē)時(shí),記錄存車(chē)人的特征與自行車(chē)的特征,當(dāng)人來(lái)取車(chē),還要小心核一下,人與車(chē)的特征能否對(duì)應(yīng)思索:張馬虎和李小心誰(shuí)對(duì)業(yè)務(wù)

8、的處置速度更高?二者誰(shuí)對(duì)自行車(chē)管理更平安?數(shù)據(jù)庫(kù)對(duì)同樣的數(shù)據(jù),有著不同的存儲(chǔ)方式和管理方式在mysql中,稱(chēng)為存儲(chǔ)引擎存儲(chǔ)引擎的概念16多種可選擇的存儲(chǔ)引擎MyISAM InnoDB MERGE MEMORY(HEAP) BDB(BerkeleyDB) EXAMPLE FEDERATED ARCHIVE CSV BLACKHOLE FALCON可插拔式的存儲(chǔ)引擎17MyISAM是MySQL的默許存儲(chǔ)引擎文章,新聞等平安性要求不高的,選myisam訂單,資金,賬單,火車(chē)票等對(duì)平安性要求高的,可以選用innodb對(duì)于暫時(shí)中轉(zhuǎn)表,可以用memory型 ,速度最快存儲(chǔ)引擎的選擇出于速度和平安性的要求,

9、選取合理的存儲(chǔ)引擎18查看存儲(chǔ)引擎查看數(shù)據(jù)庫(kù)可以支持的存儲(chǔ)引擎 mysql show engines;19查看表的構(gòu)造等信息的假設(shè)干命令1.Describe tablename; /查看數(shù)據(jù)表的構(gòu)造2.show table status like tablename/顯示表的當(dāng)前形狀值 3.show table status like tablenameG/顯示表的當(dāng)前形狀值20創(chuàng)建數(shù)據(jù)庫(kù)表時(shí)設(shè)置存儲(chǔ)存儲(chǔ)引擎的根本語(yǔ)法是:Create table tableName(columnName(列名1) type(數(shù)據(jù)類(lèi)型) attri(屬性設(shè)置),columnName(列名2) type(數(shù)據(jù)類(lèi)型

10、) attri(屬性設(shè)置),.) engine = engineName例如,假設(shè)要?jiǎng)?chuàng)建一個(gè)名為user的表,此表包括id,用戶(hù)名username和性別sex三個(gè)字段,并且要設(shè)置表類(lèi)型為merge。那么可用如下的方式創(chuàng)建此數(shù)據(jù)表,create table user( id int not null auto_increment, username char(20) not null, sex char(2), primary key(id) engine=merge21 修正存儲(chǔ)引擎 可以用命令A(yù)lter table tableName engine =engineName假設(shè),假設(shè)需求將表u

11、ser的存儲(chǔ)引擎修正為InnoDB類(lèi)型,那么可運(yùn)用命令alter table user engine= InnoDB 。如以下圖所示:查看修正后的表類(lèi)型,可見(jiàn)表類(lèi)型曾經(jīng)變?yōu)镮nnoDB類(lèi)型。22一句話(huà)說(shuō)字符集字符集就是一個(gè)字符二進(jìn)制字節(jié)的映射表思索多言語(yǔ)與移植的問(wèn)題,選取合理的字符集字符集是一套符號(hào)和編碼的規(guī)那么,不論是在 oracle 數(shù)據(jù)庫(kù)還是在 mysql 數(shù)據(jù)庫(kù),都存在字符集的選擇問(wèn)題,而且假設(shè)在數(shù)據(jù)庫(kù)創(chuàng)建階段沒(méi)有正確選擇字符集,那么能夠在后期需求改換字符集,而字符集的改換是代價(jià)比較高的操作,也存在一定的風(fēng)險(xiǎn),所以,我們引薦在運(yùn)用開(kāi)場(chǎng)階段,就按照需求正確的選擇適宜的字符集,防止后期不用

12、要的調(diào)整。字符集(charset)231:節(jié)省空間建議在可以完全滿(mǎn)足運(yùn)用的前提下,盡量運(yùn)用小的字符集。由于更小的字符集意味著可以節(jié)省空間、減少網(wǎng)絡(luò)傳輸字節(jié)數(shù),同時(shí)由于存儲(chǔ)空間的較小間接的提高了系統(tǒng)的性能。有很多字符集可以保管漢字,比如 utf8、gb2312、gbk、gb18030 等等,但是常用的是gb2312 和 gbk。2:兼容性由于 gb2312 字庫(kù)比 gbk 字庫(kù)小,有些偏遠(yuǎn)字(例如:洺)不能保管,因此在選擇字符集的時(shí)候一定要權(quán)衡這些偏遠(yuǎn)字在運(yùn)用出現(xiàn)的幾率以及呵斥的影響。3:開(kāi)展空間在互聯(lián)網(wǎng)上,國(guó)際化的趨勢(shì)不可防止,且存儲(chǔ)空間曾經(jīng)越來(lái)海量化,因此引薦用utf8,假設(shè)開(kāi)發(fā)內(nèi)網(wǎng)系統(tǒng),如

13、內(nèi)部OA等,可以思索GBK。字符集的選擇24查看MySQL數(shù)據(jù)庫(kù)效力器和數(shù)據(jù)庫(kù)MySQL字符集。mysqlshow variables like character_set_%; +-+-+- |Variable_name|Value|. +-+-+- |character_set_client|utf8|.-客戶(hù)端字符集 |character_set_connection|utf8|. |character_set_database|utf8|.-數(shù)據(jù)庫(kù)字符集 |character_set_filesystem|binary|. |character_set_results|utf8|. |

14、character_set_server|utf8|.-效力器字符集 |character_set_system|utf8|. |character_sets_dir|D:MySQLServer5.0sharecharsets|. +-+-+-25查看MySQL數(shù)據(jù)表table的MySQL字符集mysqlshowtablestatusfrom庫(kù)名 like%表名%; +-+-+-+-+-+-+- |Name|Engine|Version|Row_format|Rows|Collation|. +-+-+-+-+-+-+- |countries|InnoDB|10|Compact|11|utf8

15、_general_ci|. +-+-+-+-+-+-+-查看MySQL數(shù)據(jù)列column的MySQL字符集。mysqlshowfullcolumnsfrom表名; +-+-+-+- |Field|Type|Collation|. +-+-+-+- |countries_id|int(11)|NULL|. |countries_name|varchar(64)|utf8_general_ci|. |countries_iso_code_2|char(2)|utf8_general_ci|. |countries_iso_code_3|char(3)|utf8_general_ci|. |addr

16、ess_format_id|int(11)|NULL|. +-+-+-+- 26修正字符集:MySQL:修正默許字符集MySQL 5.X 1. 修正 MySQL 數(shù)據(jù)庫(kù)默許字符集mysql database default character set alter database testdb default character set = gb2312; 2. 修正 MySQL 數(shù)據(jù)表默許字符集mysql table default character set alter table ip_to_country default character set = gb2312; 3.修正列級(jí)修正

17、例如: mysqlAlter TABLE products CHANGE products_model products_model VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更 改了后永久生效 4.更改銜接字符集 a. 暫時(shí)更改:mysql SET NAMES utf8; b.永久更改: shellvi /etc/myf在client中添加:default-character-set=utf8留意:修正 MySQL 的默許字符集,不論是在數(shù)據(jù)庫(kù)級(jí)別,還是數(shù)據(jù)表級(jí)別,對(duì)曾經(jīng)存儲(chǔ)的字符數(shù)

18、據(jù)無(wú)任何改動(dòng)。只是新增的表或列,開(kāi)場(chǎng)運(yùn)用新的字符集。 275.修正效力器級(jí)字符集a. 暫時(shí)更改: mysqlSET GLOBAL character_set_server=utf8; b. 永久更改:shellvi /etc/myfmysqlddefault-character-set=utf8 配置/etc/myf文件:linux 下local為UTF-8);分別在如下幾項(xiàng)中添加字符集:clientdefault-character-set=utf8mysqld_safedefault-character-set=utf8mysqlddefault-character-set=utf8#de

19、fault-table-type=innodbmysqldefault-character-set=gb2312再重啟mysql讓配置生效:service mysql restart再執(zhí)行:show variables like %character%;28轉(zhuǎn)換 MySQL 數(shù)據(jù)表字符集mysql table character set 1.MySQL 中有一個(gè)數(shù)據(jù)表 ip_to_country,以前該表字符列數(shù)據(jù)都是以 utf8 編碼格式存放的,如今想轉(zhuǎn)換為 gb2312 編碼格式存放。需求運(yùn)用 MySQL 轉(zhuǎn)換字符集命令:convert to character set alter tab

20、le ip_to_country convert to character set gb2312; 提示:convert to 也會(huì)把數(shù)據(jù)表 ip_to_country 的默許字符集從 utf8 更改為 gb2312。 2. 轉(zhuǎn)換 MySQL 數(shù)據(jù)表中某個(gè)列的字符集mysql column character set alter table ip_to_country modify country_name varchar(50) character set gb2312; 這個(gè)語(yǔ)句把單獨(dú)一個(gè)列 country_name 的字符集轉(zhuǎn)換為 gb2312。這在用法在實(shí)踐中比較少見(jiàn),由于大多數(shù)情況下

21、,都是改動(dòng)整個(gè)表的字符集。 29舊數(shù)據(jù)庫(kù)GBK字符集舊網(wǎng)站系統(tǒng)GBK編碼新網(wǎng)站utf8編碼思索:數(shù)據(jù)庫(kù)不準(zhǔn)動(dòng),新站又是utf8,如何堅(jiān)持新網(wǎng)站與舊數(shù)據(jù)的兼容?字符集專(zhuān)題-新舊網(wǎng)站并存案例30 數(shù)字類(lèi)型 字符串類(lèi)型 日期時(shí)間類(lèi)型 選擇正確的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型31數(shù)字類(lèi)型32日期和時(shí)間類(lèi)型33字符串類(lèi)型34通常我們應(yīng)該選擇盡能夠小的數(shù)據(jù)類(lèi)型,這樣可以節(jié)省空間,并且可以更快地進(jìn)展訪(fǎng)問(wèn)和更新。但應(yīng)該留意需求保管的數(shù)據(jù)的范圍,假設(shè)選擇的類(lèi)型太小,數(shù)據(jù)能夠會(huì)在插入時(shí)被截?cái)嗷虍a(chǎn)生錯(cuò)誤,所以一定要選擇一個(gè)覆蓋一切能夠性的數(shù)據(jù)類(lèi)型為了優(yōu)化存儲(chǔ),在任何情況下均應(yīng)運(yùn)用最準(zhǔn)確的類(lèi)型。例如,假設(shè)列的值的范圍為從1到999

22、99,假設(shè)運(yùn)用整數(shù),那么MEDIUMINT UNSIGNED是好的類(lèi)型。在一切可以表示該列值的類(lèi)型中,該類(lèi)型運(yùn)用的存儲(chǔ)最少。該當(dāng)運(yùn)用精度為65位十進(jìn)制數(shù)(基于10)對(duì)DECIMAL 列進(jìn)展一切根本計(jì)算(+、-、*、/)運(yùn)用雙精度操作對(duì)DECIMAL值進(jìn)展計(jì)算。假設(shè)準(zhǔn)確度不是太重要或假設(shè)速度為最高優(yōu)先級(jí),DOUBLE類(lèi)型即足夠了。為了到達(dá)高精度,可以轉(zhuǎn)換到保管在BIGINT中的定點(diǎn)類(lèi)型。這樣可以用64位整數(shù)進(jìn)展一切計(jì)算,根據(jù)需求將結(jié)果轉(zhuǎn)換回浮點(diǎn)值數(shù)據(jù)類(lèi)型的選擇35顯示數(shù)據(jù)庫(kù)的相關(guān)內(nèi)容顯示數(shù)據(jù)庫(kù)mysql show databases;顯示數(shù)據(jù)庫(kù)中的表mysql use mysql;mysql s

23、how tables;顯示數(shù)據(jù)庫(kù)中表的構(gòu)造mysql describe 表名; 36建立及刪除數(shù)據(jù)庫(kù)、表建立數(shù)據(jù)庫(kù)與表use 庫(kù)名;mysql create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);刪庫(kù)及刪表drop database 庫(kù)名; drop table 表名; 37對(duì)數(shù)據(jù)庫(kù)表中內(nèi)容的操作添加記錄mysql insert into name values(,張三,男,1971-10-01); mysql insert into name va

24、lues(,白云,女,1972-05-20); 修正記錄mysql update name set csny=1971-01-10 where xm=張三; 刪除記錄mysql delete from name where xm=張三;查詢(xún)記錄 mysql select * from name where xm=張三;3839MySQL簡(jiǎn)介MySQL常用操作MySQL管理維護(hù)備份命令備份單獨(dú)庫(kù)下面的一切表的方法mysqldump -uuname -ppasswd dbname /dir/filename 備份某一庫(kù)下面的幾個(gè)表的方法mysqldump -uuname -ppasswd dbna

25、me table1 table2. tableN /dir/filename 備份多個(gè)庫(kù)的方法mysqldump -uname -ppasswd -B db1 db2 /dir/filename 備份一切庫(kù)的方法 mysqldump -uname -ppasswd -A /dir/filename 數(shù)據(jù)庫(kù)備份與恢復(fù)40恢復(fù)命令1:在命令行操作mysql -uname -ppasswd databaseName use dbname;mysql source /dir/filename;數(shù)據(jù)庫(kù)備份與恢復(fù)41表的缺點(diǎn)檢測(cè)和修正的普經(jīng)過(guò)程如下:檢查出錯(cuò)的表。假設(shè)該表檢查經(jīng)過(guò),那么完成義務(wù),否那么必需

26、修復(fù)出錯(cuò)的數(shù)據(jù)庫(kù)表。在開(kāi)場(chǎng)修復(fù)之前對(duì)表文件進(jìn)展拷貝,以保證數(shù)據(jù)的平安。開(kāi)場(chǎng)修復(fù)數(shù)據(jù)庫(kù)表。假設(shè)修復(fù)失敗,從數(shù)據(jù)庫(kù)的備份或更新日志中恢復(fù)數(shù)據(jù)。在運(yùn)用myisamchk或isamchk檢查或修復(fù)表之前,應(yīng)該首先留意:建立數(shù)據(jù)庫(kù)備份和運(yùn)用更新日志,以防修復(fù)失敗,喪失數(shù)據(jù)。維護(hù)不是簡(jiǎn)單的運(yùn)轉(zhuǎn)myisamchk維護(hù)程序就可以的。由于大多數(shù)情況下,管理員進(jìn)展表的檢查和修復(fù)時(shí),效力器都要繼續(xù)運(yùn)轉(zhuǎn),因此假設(shè)方法不當(dāng),很能夠維護(hù)程序會(huì)與效力器產(chǎn)生沖突。經(jīng)過(guò)表外部鎖定或內(nèi)部鎖定運(yùn)用的鎖定協(xié)議也不同,分別為讀鎖定和寫(xiě)鎖定,防止維護(hù)過(guò)程中與效力器發(fā)生的交互作用假設(shè)他在Unix平臺(tái)上對(duì)表進(jìn)展維護(hù)時(shí),應(yīng)該首先注冊(cè)到公用的帳

27、戶(hù)mysql,以防止對(duì)表讀寫(xiě)訪(fǎng)問(wèn)產(chǎn)生一切權(quán)的問(wèn)題,以及破壞數(shù)據(jù)庫(kù)目錄的一切權(quán)限。數(shù)據(jù)庫(kù)維護(hù)修復(fù)42數(shù)據(jù)庫(kù)維護(hù)修復(fù)維護(hù)修復(fù)工具在執(zhí)行解體恢復(fù)時(shí),了解在一個(gè)數(shù)據(jù)庫(kù)中的每一個(gè)表tbl_name對(duì)應(yīng)的在數(shù)據(jù)庫(kù)目錄中的3個(gè)文件是很重要的: 文件 用途 “tbl_name.frm 表定義(表格)文件 “tbl_name.MYD 數(shù)據(jù)文件 “tbl_name.MYI 索引文件 這3個(gè)文件的每一個(gè)文件類(lèi)型能夠蒙受不同方式的損壞,但是問(wèn)題最常發(fā)生在數(shù)據(jù)文件和索引文件。 myisamchk經(jīng)過(guò)一行一行地創(chuàng)建一個(gè)“.MYD數(shù)據(jù) )文件的副本來(lái)任務(wù),它經(jīng)過(guò)由刪除老的“.MYD 文件并且重命名新文件到原來(lái)的文件名終了修

28、復(fù)階段。假設(shè)他運(yùn)用-quick,myisamchk不創(chuàng)建一個(gè)暫時(shí)“.MYD文件,只是假定“.MYD文件是正確的并且僅創(chuàng)建一個(gè)新的索引文件,不接觸“.MYD文件,這是平安的,由于myisamchk自動(dòng)檢測(cè)“.MYD文件能否損壞并且在這種情況下,放棄修復(fù)。他也可以給myisamchk兩個(gè)-quick選項(xiàng)。在這種情況下,myisamchk不會(huì)在一些錯(cuò)誤上(象反復(fù)鍵)放棄,相反試圖經(jīng)過(guò)修正“.MYD文件處理它們。通常,只需在他在太少的空閑磁盤(pán)空間上實(shí)施一個(gè)正常修復(fù),運(yùn)用兩個(gè)-quick選項(xiàng)才有用。在這種情況下,他應(yīng)該至少在運(yùn)轉(zhuǎn)myisamchk前做一個(gè)備份。 43數(shù)據(jù)庫(kù)維護(hù)修復(fù)怎樣檢查表的錯(cuò)誤 為了檢

29、查一張表,運(yùn)用以下命令: myisamchk tbl_name 這能找出一切錯(cuò)誤的99.99%。它不能找出的是僅僅涉及數(shù)據(jù)文件的損壞(這很不常見(jiàn))。假設(shè)他想要檢查一張表,他通常應(yīng)該沒(méi)有選項(xiàng)地運(yùn)轉(zhuǎn)myisamchk或用-s或-silent選項(xiàng)的任何一個(gè)。 myisamchk -e tbl_name 它做一個(gè)完全徹底的數(shù)據(jù)檢查(-e意思是“擴(kuò)展檢查)。它對(duì)每一行做每個(gè)鍵的讀檢查以證明他們確實(shí)指向正確的行。這在一個(gè)有很多鍵的大表上能夠花很長(zhǎng)時(shí)間。myisamchk通常將在它發(fā)現(xiàn)第一個(gè)錯(cuò)誤以后停頓。假設(shè)他想要獲得更多的信息,他能添加-verbose(-v)選項(xiàng)。這使得myisamchk繼續(xù)不斷到最多2

30、0個(gè)錯(cuò)誤。在普通運(yùn)用中,一個(gè)簡(jiǎn)單的myisamchk沒(méi)有除表名以外的參數(shù))就足夠了。 myisamchk -e -i tbl_name 象前面的命令一樣,但是-i選項(xiàng)通知myisamchk還打印出一些統(tǒng)計(jì)信息。44數(shù)據(jù)庫(kù)維護(hù)修復(fù)怎樣修復(fù)表 一張損壞的表的病癥通常是查詢(xún)不測(cè)中斷并且他能看到例如這些錯(cuò)誤: “tbl_name.frm被鎖定不能改動(dòng)。 不能找到文件“tbl_name.MYIErrcode :# 。 從表處置器的得到錯(cuò)誤#(此時(shí),錯(cuò)誤是一個(gè)例外。 不測(cè)的文件終了。 記錄文件被毀壞。 在這些情況下,他必需修復(fù)表。myisamchk通常能檢測(cè)并且修復(fù)出錯(cuò)的大部分東西。 修復(fù)過(guò)程包含最多4個(gè)

31、階段,在下面描畫(huà)。在他開(kāi)場(chǎng)前,他應(yīng)該cd到數(shù)據(jù)庫(kù)目錄和檢查表文件的權(quán)限,確保他們可被運(yùn)轉(zhuǎn)mysqld的用戶(hù)讀取。假設(shè)它回絕他修正文件,他們也必需是可被他寫(xiě)入的。45數(shù)據(jù)庫(kù)維護(hù)修復(fù)階段1:檢查他的表 運(yùn)轉(zhuǎn) myisamchk *.MYI或(myisamchk -e *.MYI,假設(shè)他有更多的時(shí)間)。運(yùn)用-s沉默)選項(xiàng)制止不用要的信息,他必需只修復(fù)那些myisamchk報(bào)告有一個(gè)錯(cuò)誤的表。對(duì)這樣的表,繼續(xù)到階段2,假設(shè)在檢查時(shí),他得到奇異的錯(cuò)誤(例如out of memory錯(cuò)誤),或假設(shè)myisamchk解體,到階段3 階段2 :簡(jiǎn)單平安的修復(fù) 首先,試試myisamchk -r -q tbl_

32、name(-r -q意味著“快速恢復(fù)方式)。這將試圖不接觸數(shù)據(jù)文件來(lái)修復(fù)索引文件。假設(shè)數(shù)據(jù)文件包含它應(yīng)有的一切和在數(shù)據(jù)文件指向正確地點(diǎn)的刪除銜接,這應(yīng)該管用并且表可被修復(fù)。開(kāi)場(chǎng)修繕下一張表。否那么,運(yùn)用以下過(guò)程: 在繼續(xù)前做數(shù)據(jù)文件的一個(gè)備份。 運(yùn)用myisamchk -r tbl_name(-r意味著“恢復(fù)方式)。這將從數(shù)據(jù)文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件。 假設(shè)前面的步驟失敗,運(yùn)用myisamchk -safe-recover tbl_name。平安恢復(fù)方式運(yùn)用一個(gè)老的恢復(fù)方法,處置常規(guī)恢復(fù)方式不行的少數(shù)情況(但是更慢)。 假設(shè)在修復(fù)時(shí),他得到奇異的錯(cuò)誤(例如out o

33、f memory錯(cuò)誤),或假設(shè)myisamchk解體,到階段3。 46數(shù)據(jù)庫(kù)維護(hù)修復(fù)階段3 :困難的修繕 假設(shè)在索引文件的第一個(gè)16K塊被破壞,或包含不正確的信息,或假設(shè)索引文件喪失,他只應(yīng)該到這個(gè)階段 。在這種情況下,創(chuàng)建一個(gè)新的索引文件是必要的。按如下這樣做: 把數(shù)據(jù)文件移更平安的地方。 運(yùn)用表描畫(huà)文件創(chuàng)建新的(空)數(shù)據(jù)和索引文件:shell mysql db_name mysql DELETE FROM tbl_name; mysql quit將老的數(shù)據(jù)文件拷貝到新創(chuàng)建的數(shù)據(jù)文件之中。不要只是將老文件移回新文件之中;他要保管一個(gè)副本以防某些東西出錯(cuò)。 回到階段2。如今myisamchk

34、-r -q應(yīng)該任務(wù)了。這不應(yīng)該是一個(gè)無(wú)限循環(huán))。47數(shù)據(jù)庫(kù)維護(hù)修復(fù)階段4:非常困難的修復(fù) 只需描畫(huà)文件也破壞了,他才應(yīng)該到達(dá)這個(gè)階段。這應(yīng)該從未發(fā)生過(guò),由于在表被創(chuàng)建以后,描畫(huà)文件就不再改動(dòng)了。 從一個(gè)備份恢復(fù)描畫(huà)文件并且回到階段3。他也可以恢復(fù)索引文件并且回到階段2。對(duì)后者,他應(yīng)該用myisamchk -r啟動(dòng)。 假設(shè)他沒(méi)有一個(gè)備份但是確切地知道表是怎樣被創(chuàng)建的,在另一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建表的一個(gè)拷貝。刪除新的數(shù)據(jù)文件,然后從其他數(shù)據(jù)庫(kù)將描畫(huà)和索引文件移到破壞的數(shù)據(jù)庫(kù)中。這給了他新的描畫(huà)和索引文件,但是讓數(shù)據(jù)文件單獨(dú)留下來(lái)了?;氐诫A段2并且嘗試重建索引文件。48用戶(hù)權(quán)限管理用戶(hù)權(quán)限管理1.設(shè)置用戶(hù)

35、與并授權(quán)GRANT命令運(yùn)用闡明,先來(lái)看一個(gè)例子,創(chuàng)建一個(gè)只允許從本地登錄的超級(jí)用戶(hù)ipi,并允許將權(quán)限賦予別的用戶(hù),i314GRANT ALL PRIVILEGES ON *.* TO ipilocalhost IDENTIFIED BYi314WITH GRANT OPTION;GRANT命令闡明:ALL PRIVILEGES 是表示一切權(quán)限,他也可以運(yùn)用select、update等權(quán)限提到的權(quán)限。ON 用來(lái)指定權(quán)限針對(duì)哪些庫(kù)和表。*.* 中前面的*號(hào)用來(lái)指定數(shù)據(jù)庫(kù)名,后面的*號(hào)用來(lái)指定表名。TO 表示將權(quán)限賦予某個(gè)用戶(hù)。ipilocalhost 表示ipi用戶(hù),后面接限制的主機(jī),可以是IP、IP段、域名以及%,%表示任何地方。留意:這里%有的版本不包括本地,以前碰到過(guò)給某個(gè)用戶(hù)設(shè)置了%允許任何地方登錄,但是在本地登錄不了,這個(gè)和版本有關(guān)系,遇到這個(gè)問(wèn)題再加一個(gè)localhost的用戶(hù)就可以了。IDENTIFIED BY 指定用戶(hù)的登錄密碼。WITH GRA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論