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

下載本文檔

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

文檔簡介

MySQL數(shù)據(jù)庫介紹深圳市艾派應(yīng)用系統(tǒng)有限公司1MySQL數(shù)據(jù)庫介紹深圳市艾派應(yīng)用系統(tǒng)有限公司1Mysql簡介Mysql數(shù)據(jù)庫簡介Mysql常用操作Mysql管理維護(hù)Mysql數(shù)據(jù)庫特點(diǎn)越來越多的企業(yè)級特性Mysql數(shù)據(jù)庫安裝Mysql連接工具M(jìn)ysql體系結(jié)構(gòu)表引擎字符集問題常用數(shù)據(jù)類型常用Sql語句數(shù)據(jù)庫備份數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫維護(hù)與修復(fù)用戶權(quán)限管理MySQL數(shù)據(jù)庫培訓(xùn)目錄數(shù)據(jù)庫安全加固2Mysql簡介Mysql數(shù)據(jù)庫簡介Mysql常用操作MysqMySQL簡介MySQL常用操作MySQL管理維護(hù)3MySQL簡介3常用的數(shù)據(jù)庫服務(wù)器:商業(yè):oracle,SQLserver,DB2開源:MySQL,postgreSQL,SQLiteMySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購,對于Mysql的前途,沒有任何人抱樂觀的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。分標(biāo)準(zhǔn)版和企業(yè)版本,企業(yè)版本提供EnterpriseMonitor工具,目前版本已經(jīng)到達(dá)MySQL6。MySQL數(shù)據(jù)庫簡介4常用的數(shù)據(jù)庫服務(wù)器:MySQL數(shù)據(jù)庫簡介4開放源代碼小巧易用高性能低成本(是ORACLE價(jià)格的1/10)高可靠高速發(fā)展的數(shù)據(jù)庫幾乎支持所有的平臺廣泛應(yīng)用在嵌入式、網(wǎng)站應(yīng)用、企業(yè)級應(yīng)用J2EE架構(gòu)、.NET架構(gòu)、還有LAMP架構(gòu)眾多的第三方支持(與LINBIT達(dá)成合作伙伴關(guān)系)支持web2.0得天獨(dú)厚MySQL數(shù)據(jù)庫特點(diǎn)5開放源代碼MySQL數(shù)據(jù)庫特點(diǎn)5MySQL的技術(shù)進(jìn)展MySQL3.23開始支持外鍵(InnoDB)MySQL4.1開始支持R-trees索引(MyISAM)MySQL從5.0開始,全面支持視圖、存儲過程、函數(shù)和觸發(fā)器功能MySQL5.1支持分區(qū)功能MySQL5.1支持行復(fù)制MySQL6.0將實(shí)現(xiàn)雙向復(fù)制逐步增加對非結(jié)構(gòu)化數(shù)據(jù)XML的支持特性MySQL6.0將支持最新的FALCON存儲引擎著名的數(shù)據(jù)庫大師JimStarkey現(xiàn)在在MySQL開發(fā)Falcon。Falcon面向的客戶是企業(yè)級用戶。Oracle跟MySQL簽定了合作協(xié)議,用戶可以繼續(xù)選擇InnoDB存儲引擎越來越多的企業(yè)級特性6MySQL的技術(shù)進(jìn)展越來越多的企業(yè)級特性6軟件下載登陸官方網(wǎng)站,下載最新的released版本。創(chuàng)建MySQL用戶和用戶組#groupaddmysql#useradd-r-gmysqlmysql解壓MySQL #cd/usr/local #tarzxvf/opt/mysql-5.5.8-linux2.6-i686.tar.gz #ln-s/usr/local/mysql-5.5.8-linux2.6-i686mysql基于Linix/Unix的安裝7軟件下載基于Linix/Unix的安裝7賦予MySQL用戶權(quán)限 #cdmysql #chown-Rmysql. #chgrp-Rmysql.安裝MySQL#scripts/mysql_install_db--user=mysql#chown-Rmysqldata#cp/usr/local/mysql/support-files/f/etc/fMySQL的啟動(dòng)與停止 #bin/mysqld_safe--user=mysql& #cp/usr/local/mysql/support-files/mysql.server/etc/init.d/mysql.server #/etc/init.d/mysql.serverstart/stop/restart基于Linix/Unix的安裝8賦予MySQL用戶權(quán)限基于Linix/Unix的安裝8更改數(shù)據(jù)庫root用戶的密碼 #./bin/mysqladmin-urootpassword'testtest'打開MySQL遠(yuǎn)程控制#./bin/mysql-uroot-p#grantallprivilegeson*.*to'root'@'1'identifiedby'testtest'withgrantoption;#flushprivileges;#updatedbsethost='1'whereuser='root';#flushprivileges;基于Linix/Unix的安裝9更改數(shù)據(jù)庫root用戶的密碼基于Linix/Unix的安裝9基于Windows的安裝10基于Windows的安裝10數(shù)據(jù)庫配置11數(shù)據(jù)庫配置11Windows下數(shù)據(jù)庫的停用和啟用12Windows下數(shù)據(jù)庫的停用和啟用12MySQL工具M(jìn)ySQL-Front一款小巧的管理MySQL的應(yīng)用程序。主要特性包括多文檔界面,語法突出,拖拽方式的數(shù)據(jù)庫和表格,可編輯/可增加/刪除的域,可編輯/可插入/刪除的記錄,可顯示的成員,可執(zhí)行的SQL腳本,提供與外程序接口,保存數(shù)據(jù)到CSV文件等。MySQLAdministratorMySQLAdministrator是用來執(zhí)行數(shù)據(jù)庫管理操作的程序和用來監(jiān)視和管理MySQL實(shí)例內(nèi)的數(shù)據(jù)庫、用戶的權(quán)限和數(shù)據(jù)的實(shí)用程序,比如說配置、控制、開啟和關(guān)閉mysql服務(wù)。

MySQLQueryBrowserMySQLQueryBrowser是一個(gè)可視化的toolset,用于創(chuàng)建、執(zhí)行以及最優(yōu)化的MySQL數(shù)據(jù)庫查詢。它就像是鑲嵌在Web瀏覽器中的一個(gè)集成的拖曳工具套件,為使用者提供了一個(gè)更簡便、更有生產(chǎn)力的途徑來存取、分析存儲在MySQL數(shù)據(jù)庫服務(wù)器中的信息。13MySQL工具M(jìn)ySQL-Front13MySQL簡介MySQL常用操作MySQL管理維護(hù)14MySQL簡介14mysql體系結(jié)構(gòu)15mysql體系結(jié)構(gòu)15設(shè)有張馬虎,李小心兩人,都是地鐵口的自行車管理員.每天都有很多人來存取自行車,張馬虎的管理方式是:來存自己存,不記錄存的是什么車,取時(shí)交5毛,也不檢查取的是否是自己的車.李小心呢,則在存取自己車時(shí),記錄存車人的特征與自行車的特征,當(dāng)人來取車,還要小心核一下,人與車的特征是否對應(yīng)思考:張馬虎和李小心誰對業(yè)務(wù)的處理速度更高?二者誰對自行車管理更安全?數(shù)據(jù)庫對同樣的數(shù)據(jù),有著不同的存儲方式和管理方式在mysql中,稱為存儲引擎存儲引擎的概念16設(shè)有張馬虎,李小心兩人,都是地鐵口的自行車管理員.數(shù)據(jù)庫對同多種可選擇的存儲引擎MyISAMInnoDBMERGEMEMORY(HEAP)BDB(BerkeleyDB)EXAMPLEFEDERATEDARCHIVECSVBLACKHOLEFALCON可插拔式的存儲引擎17多種可選擇的存儲引擎可插拔式的存儲引擎17MyISAM是MySQL的默認(rèn)存儲引擎文章,新聞等安全性要求不高的,選myisam訂單,資金,賬單,火車票等對安全性要求高的,可以選用innodb對于臨時(shí)中轉(zhuǎn)表,可以用memory型,速度最快存儲引擎的選擇出于速度和安全性的要求,選取合理的存儲引擎18MyISAM是MySQL的默認(rèn)存儲引擎訂單,資金,賬單,火車查看存儲引擎查看數(shù)據(jù)庫可以支持的存儲引擎mysql>showengines;19查看存儲引擎查看數(shù)據(jù)庫可以支持的存儲引擎19查看表的結(jié)構(gòu)等信息的若干命令

1.Desc[ribe]tablename;//查看數(shù)據(jù)表的結(jié)構(gòu)

2.showtablestatuslike‘tablename’//顯示表的當(dāng)前狀態(tài)值3.showtablestatuslike‘tablename’\G//顯示表的當(dāng)前狀態(tài)值

20查看表的結(jié)構(gòu)等信息的若干命令

1.Desc[ribe]ta創(chuàng)建數(shù)據(jù)庫表時(shí)設(shè)置存儲存儲引擎的基本語法是:

CreatetabletableName(

columnName(列名1)

type(數(shù)據(jù)類型)

attri(屬性設(shè)置),

columnName(列名2)

type(數(shù)據(jù)類型)

attri(屬性設(shè)置),

……..)engine=engineName例如,假設(shè)要?jiǎng)?chuàng)建一個(gè)名為user的表,此表包括id,用戶名username和性別sex三個(gè)字段,并且要設(shè)置表類型為merge。則可用如下的方式創(chuàng)建此數(shù)據(jù)表,createtableuser(

idintnotnullauto_increment,

usernamechar(20)notnull,

sexchar(2),

primarykey(id))engine=merge

21創(chuàng)建數(shù)據(jù)庫表時(shí)設(shè)置存儲存儲引擎的基本語法是:

Create

修改存儲引擎可以用命令A(yù)ltertabletableNameengine=engineName假如,若需要將表user的存儲引擎修改為InnoDB類型,則可使用命令altertableuserengine=InnoDB。如下圖所示:

查看修改后的表類型,可見表類型已經(jīng)變?yōu)镮nnoDB類型。

22

修改存儲引擎22一句話說字符集字符集就是一個(gè)字符<->二進(jìn)制字節(jié)的映射表考慮多語言與移植的問題,選取合理的字符集字符集是一套符號和編碼的規(guī)則,不論是在oracle數(shù)據(jù)庫還是在mysql數(shù)據(jù)庫,都存在字符集的選擇問題,而且如果在數(shù)據(jù)庫創(chuàng)建階段沒有正確選擇字符集,那么可能在后期需要更換字符集,而字符集的更換是代價(jià)比較高的操作,也存在一定的風(fēng)險(xiǎn),所以,我們推薦在應(yīng)用開始階段,就按照需求正確的選擇合適的字符集,避免后期不必要的調(diào)整。字符集(charset)23一句話說字符集字符集是一套符號和編碼的規(guī)則,不論是在ora1:節(jié)省空間建議在能夠完全滿足應(yīng)用的前提下,盡量使用小的字符集。因?yàn)楦〉淖址馕吨軌蚬?jié)省空間、減少網(wǎng)絡(luò)傳輸字節(jié)數(shù),同時(shí)由于存儲空間的較小間接的提高了系統(tǒng)的性能。有很多字符集可以保存漢字,比如utf8、gb2312、gbk、gb18030等等,但是常用的是gb2312和gbk。2:兼容性因?yàn)間b2312字庫比gbk字庫小,有些偏僻字(例如:洺)不能保存,因此在選擇字符集的時(shí)候一定要權(quán)衡這些偏僻字在應(yīng)用出現(xiàn)的幾率以及造成的影響。3:發(fā)展空間在互聯(lián)網(wǎng)上,國際化的趨勢不可避免,且存儲空間已經(jīng)越來海量化,因此推薦用utf8,如果開發(fā)內(nèi)網(wǎng)系統(tǒng),如內(nèi)部OA等,可以考慮GBK。字符集的選擇241:節(jié)省空間字符集的選擇24查看MySQL數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫MySQL字符集。mysql>

showvariableslike'character_set_%';

+--------------------------+-------------------------------------+------

|

Variable_name

|

Value

|......

+--------------------------+-------------------------------------+------

|

character_set_client

|

utf8

|......

--

客戶端字符集

|

character_set_connection

|

utf8

|......

|

character_set_database

|

utf8

|......

--

數(shù)據(jù)庫字符集

|

character_set_filesystem

|

binary

|......

|

character_set_results

|

utf8

|......

|

character_set_server

|

utf8

|......

--

服務(wù)器字符集

|

character_set_system

|

utf8

|......

|

character_sets_dir

|

D:\MySQL

Server

5.0\share\charsets\

|......

+--------------------------+-------------------------------------+------

25查看MySQL數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫MySQL字符集。25查看MySQL數(shù)據(jù)表(table)的MySQL字符集mysql>

show

table

status

from

庫名

like

‘%表名%';

+-----------+--------+---------+------------+------+-----------------+------

|

Name

|

Engine

|

Version

|

Row_format

|

Rows

|

Collation

|......

+-----------+--------+---------+------------+------+-----------------+------

|

countries

|

InnoDB

|

10

|

Compact

|

11

|

utf8_general_ci

|......

+-----------+--------+---------+------------+------+-----------------+------

查看MySQL數(shù)據(jù)列(column)的MySQL字符集。mysql>

show

full

columns

from

表名;

+----------------------+-------------+-----------------+--------

|

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

|

.......

|

address_format_id

|

int(11)

|

NULL

|

.......

+----------------------+-------------+-----------------+--------

26查看MySQL數(shù)據(jù)表(table)的MySQL字符集26修改字符集:MySQL:修改默認(rèn)字符集(MySQL5.X)1.修改MySQL數(shù)據(jù)庫默認(rèn)字符集(mysqldatabasedefaultcharacterset)alterdatabasetestdbdefaultcharacterset=gb2312;2.修改MySQL數(shù)據(jù)表默認(rèn)字符集(mysqltabledefaultcharacterset)altertableip_to_countrydefaultcharacterset=gb2312;3.修改列級修改示例:mysql>AlterTABLE`products`CHANGE`products_model``products_model`VARCHAR(20)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL;更改了后永久生效4.更改連接字符集a.臨時(shí)更改:mysql>SETNAMESutf8;b.永久更改:shell>vi/etc/f在[client]中增加:default-character-set=utf8注意:修改MySQL的默認(rèn)字符集,不管是在數(shù)據(jù)庫級別,還是數(shù)據(jù)表級別,對已經(jīng)存儲的字符數(shù)據(jù)無任何改變。只是新增的表或列,開始使用新的字符集。

27修改字符集:275.修改服務(wù)器級字符集a.臨時(shí)更改:mysql>SETGLOBALcharacter_set_server=utf8;b.永久更改:shell>vi/etc/f[mysqld]default-character-set=utf8配置/etc/f文件:(linux下local為UTF-8);

分別在如下幾項(xiàng)中添加字符集:[client]default-character-set=utf8[mysqld_safe]default-character-set=utf8[mysqld]default-character-set=utf8#default-table-type=innodb[mysql]default-character-set=gb2312再重啟mysql讓配置生效:servicemysqlrestart

再執(zhí)行:showvariableslike'%character%';285.修改服務(wù)器級字符集28轉(zhuǎn)換MySQL數(shù)據(jù)表字符集(mysqltablecharacterset)1.MySQL中有一個(gè)數(shù)據(jù)表ip_to_country,以前該表字符列數(shù)據(jù)都是以utf8編碼格式存放的,現(xiàn)在想轉(zhuǎn)換為gb2312編碼格式存放。需要使用MySQL轉(zhuǎn)換字符集命令:converttocharactersetaltertableip_to_countryconverttocharactersetgb2312;提示:convertto也會把數(shù)據(jù)表ip_to_country的默認(rèn)字符集從utf8更改為gb2312。

2.轉(zhuǎn)換MySQL數(shù)據(jù)表中某個(gè)列的字符集(mysqlcolumncharacterset)altertableip_to_countrymodifycountry_namevarchar(50)charactersetgb2312;這個(gè)語句把單獨(dú)一個(gè)列country_name的字符集轉(zhuǎn)換為gb2312。這在用法在實(shí)際中比較少見,因?yàn)榇蠖鄶?shù)情況下,都是改變整個(gè)表的字符集。29轉(zhuǎn)換MySQL數(shù)據(jù)表字符集(mysqltablech舊數(shù)據(jù)庫GBK字符集舊網(wǎng)站系統(tǒng)GBK編碼新網(wǎng)站utf8編碼思考:數(shù)據(jù)庫不準(zhǔn)動(dòng),新站又是utf8,如何保持新網(wǎng)站與舊數(shù)據(jù)的兼容?字符集專題-新舊網(wǎng)站并存案例30舊數(shù)據(jù)庫舊網(wǎng)站系統(tǒng)新網(wǎng)站思考:字符集專題-新舊網(wǎng)站并存案例3

數(shù)字類型字符串類型日期時(shí)間類型選擇正確的數(shù)據(jù)類型數(shù)據(jù)類型31數(shù)字類型數(shù)據(jù)類型31數(shù)字類型32數(shù)字類型32日期和時(shí)間類型33日期和時(shí)間類型33字符串類型34字符串類型34通常我們應(yīng)該選擇盡可能小的數(shù)據(jù)類型,這樣可以節(jié)省空間,并且可以更快地進(jìn)行訪問和更新。但應(yīng)該注意需要保存的數(shù)據(jù)的范圍,如果選擇的類型太小,數(shù)據(jù)可能會在插入時(shí)被截?cái)嗷虍a(chǎn)生錯(cuò)誤,所以一定要選擇一個(gè)覆蓋所有可能性的數(shù)據(jù)類型為了優(yōu)化存儲,在任何情況下均應(yīng)使用最精確的類型。例如,如果列的值的范圍為從1到99999,若使用整數(shù),則MEDIUMINTUNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。應(yīng)當(dāng)使用精度為65位十進(jìn)制數(shù)(基于10)對DECIMAL列進(jìn)行所有基本計(jì)算(+、-、*、/)使用雙精度操作對DECIMAL值進(jìn)行計(jì)算。如果準(zhǔn)確度不是太重要或如果速度為最高優(yōu)先級,DOUBLE類型即足夠了。為了達(dá)到高精度,可以轉(zhuǎn)換到保存在BIGINT中的定點(diǎn)類型。這樣可以用64位整數(shù)進(jìn)行所有計(jì)算,根據(jù)需要將結(jié)果轉(zhuǎn)換回浮點(diǎn)值數(shù)據(jù)類型的選擇35通常我們應(yīng)該選擇盡可能小的數(shù)據(jù)類型,這樣可以節(jié)省空間,并且可顯示數(shù)據(jù)庫的相關(guān)內(nèi)容顯示數(shù)據(jù)庫mysql>showdatabases;顯示數(shù)據(jù)庫中的表mysql>usemysql;mysql>showtables;顯示數(shù)據(jù)庫中表的結(jié)構(gòu)

mysql>describe表名;36顯示數(shù)據(jù)庫的相關(guān)內(nèi)容顯示數(shù)據(jù)庫36建立及刪除數(shù)據(jù)庫、表建立數(shù)據(jù)庫與表

use庫名; mysql>createtablename(idint(3)auto_incrementnotnullprimarykey,xmchar(8),xbchar(2),csnydate);刪庫及刪表

dropdatabase庫名; droptable表名;37建立及刪除數(shù)據(jù)庫、表建立數(shù)據(jù)庫與表37對數(shù)據(jù)庫表中內(nèi)容的操作增加記錄

mysql>insertintonamevalues('','張三','男','1971-10-01'); mysql>insertintonamevalues('','白云','女','1972-05-20');

修改記錄

mysql>updatenamesetcsny='1971-01-10'wherexm='張三';刪除記錄

mysql>deletefromnamewherexm='張三';查詢記錄

mysql>select*fromnamewherexm='張三';38對數(shù)據(jù)庫表中內(nèi)容的操作增加記錄38MySQL簡介MySQL常用操作MySQL管理維護(hù)39MySQL簡介39備份命令備份單獨(dú)庫下面的所有表的方法mysqldump-uuname-ppasswddbname>/dir/filename備份某一庫下面的幾個(gè)表的方法mysqldump-uuname-ppasswddbnametable1table2..tableN>/dir/filename備份多個(gè)庫的方法mysqldump-uname-ppasswd-Bdb1db2>/dir/filename備份所有庫的方法mysqldump-uname-ppasswd-A>/dir/filename數(shù)據(jù)庫備份與恢復(fù)40備份命令備份單獨(dú)庫下面的所有表的方法數(shù)據(jù)庫備份與恢復(fù)40恢復(fù)命令1:在命令行操作mysql-uname-ppasswd[databaseName]</dir/filename2:登陸mysql后source操作mysql>usedbname;mysql>source/dir/filename;數(shù)據(jù)庫備份與恢復(fù)41恢復(fù)命令1:在命令行操作數(shù)據(jù)庫備份與恢復(fù)41表的故障檢測和修正的一般過程如下:檢查出錯(cuò)的表。如果該表檢查通過,則完成任務(wù),否則必須修復(fù)出錯(cuò)的數(shù)據(jù)庫表。在開始修復(fù)之前對表文件進(jìn)行拷貝,以保證數(shù)據(jù)的安全。開始修復(fù)數(shù)據(jù)庫表。如果修復(fù)失敗,從數(shù)據(jù)庫的備份或更新日志中恢復(fù)數(shù)據(jù)。在使用myisamchk或isamchk檢查或修復(fù)表之前,應(yīng)該首先注意:建立數(shù)據(jù)庫備份和使用更新日志,以防修復(fù)失敗,丟失數(shù)據(jù)。維護(hù)不是簡單的運(yùn)行myisamchk維護(hù)程序就可以的。因?yàn)榇蠖鄶?shù)情況下,管理員進(jìn)行表的檢查和修復(fù)時(shí),服務(wù)器都要持續(xù)運(yùn)行,因此如果方法不當(dāng),很可能維護(hù)程序會與服務(wù)器產(chǎn)生沖突。通過表外部鎖定或內(nèi)部鎖定(使用的鎖定協(xié)議也不同,分別為讀鎖定和寫鎖定),避免維護(hù)過程中與服務(wù)器發(fā)生的交互作用如果你在Unix平臺上對表進(jìn)行維護(hù)時(shí),應(yīng)該首先注冊到專用的帳戶

mysql,以避免對表讀寫訪問產(chǎn)生所有權(quán)的問題,以及破壞數(shù)據(jù)庫目錄的所有權(quán)限。數(shù)據(jù)庫維護(hù)修復(fù)42表的故障檢測和修正的一般過程如下:數(shù)據(jù)庫維護(hù)修復(fù)42數(shù)據(jù)庫維護(hù)修復(fù)維護(hù)修復(fù)工具在執(zhí)行崩潰恢復(fù)時(shí),理解在一個(gè)數(shù)據(jù)庫中的每一個(gè)表tbl_name對應(yīng)的在數(shù)據(jù)庫目錄中的3個(gè)文件是很重要的:文件用途“tbl_name.frm”表定義(表格)文件“tbl_name.MYD”數(shù)據(jù)文件“tbl_name.MYI”索引文件這3個(gè)文件的每一個(gè)文件類型可能遭受不同形式的損壞,但是問題最常發(fā)生在數(shù)據(jù)文件和索引文件。myisamchk通過一行一行地創(chuàng)建一個(gè)“.MYD”(數(shù)據(jù))文件的副本來工作,它通過由刪除老的“.MYD文件并且重命名新文件到原來的文件名結(jié)束修復(fù)階段。如果你使用--quick,myisamchk不創(chuàng)建一個(gè)臨時(shí)“.MYD”文件,只是假定“.MYD”文件是正確的并且僅創(chuàng)建一個(gè)新的索引文件,不接觸“.MYD”文件,這是安全的,因?yàn)閙yisamchk自動(dòng)檢測“.MYD”文件是否損壞并且在這種情況下,放棄修復(fù)。你也可以給myisamchk兩個(gè)--quick選項(xiàng)。在這種情況下,myisamchk不會在一些錯(cuò)誤上(象重復(fù)鍵)放棄,相反試圖通過修改“.MYD”文件解決它們。通常,只有在你在太少的空閑磁盤空間上實(shí)施一個(gè)正常修復(fù),使用兩個(gè)--quick選項(xiàng)才有用。在這種情況下,你應(yīng)該至少在運(yùn)行myisamchk前做一個(gè)備份。43數(shù)據(jù)庫維護(hù)修復(fù)維護(hù)修復(fù)工具43數(shù)據(jù)庫維護(hù)修復(fù)怎樣檢查表的錯(cuò)誤為了檢查一張表,使用下列命令:myisamchktbl_name這能找出所有錯(cuò)誤的99.99%。它不能找出的是僅僅涉及數(shù)據(jù)文件的損壞(這很不常見)。如果你想要檢查一張表,你通常應(yīng)該沒有選項(xiàng)地運(yùn)行myisamchk或用-s或--silent選項(xiàng)的任何一個(gè)。myisamchk-etbl_name它做一個(gè)完全徹底的數(shù)據(jù)檢查(-e意思是“擴(kuò)展檢查”)。它對每一行做每個(gè)鍵的讀檢查以證實(shí)他們確實(shí)指向正確的行。這在一個(gè)有很多鍵的大表上可能花很長時(shí)間。myisamchk通常將在它發(fā)現(xiàn)第一個(gè)錯(cuò)誤以后停止。如果你想要獲得更多的信息,你能增加--verbose(-v)選項(xiàng)。這使得myisamchk繼續(xù)一直到最多20個(gè)錯(cuò)誤。在一般使用中,一個(gè)簡單的myisamchk(沒有除表名以外的參數(shù))就足夠了。myisamchk-e-itbl_name象前面的命令一樣,但是-i選項(xiàng)告訴myisamchk還打印出一些統(tǒng)計(jì)信息。44數(shù)據(jù)庫維護(hù)修復(fù)怎樣檢查表的錯(cuò)誤44數(shù)據(jù)庫維護(hù)修復(fù)怎樣修復(fù)表一張損壞的表的癥狀通常是查詢意外中斷并且你能看到例如這些錯(cuò)誤:“tbl_name.frm”被鎖定不能改變。不能找到文件“tbl_name.MYI”(Errcode:###)。從表處理器的得到錯(cuò)誤###(此時(shí),錯(cuò)誤135是一個(gè)例外)。意外的文件結(jié)束。記錄文件被毀壞。在這些情況下,你必須修復(fù)表。myisamchk通常能檢測并且修復(fù)出錯(cuò)的大部分東西。修復(fù)過程包含最多4個(gè)階段,在下面描述。在你開始前,你應(yīng)該cd到數(shù)據(jù)庫目錄和檢查表文件的權(quán)限,確保他們可被運(yùn)行mysqld的用戶讀取。如果它拒絕你修改文件,他們也必須是可被你寫入的。45數(shù)據(jù)庫維護(hù)修復(fù)怎樣修復(fù)表45數(shù)據(jù)庫維護(hù)修復(fù)階段1:檢查你的表運(yùn)行myisamchk*.MYI或(myisamchk-e*.MYI,如果你有更多的時(shí)間)。使用-s(沉默)選項(xiàng)禁止不必要的信息,你必須只修復(fù)那些myisamchk報(bào)告有一個(gè)錯(cuò)誤的表。對這樣的表,繼續(xù)到階段2,如果在檢查時(shí),你得到奇怪的錯(cuò)誤(例如outofmemory錯(cuò)誤),或如果myisamchk崩潰,到階段3

階段2:簡單安全的修復(fù)首先,試試myisamchk-r-qtbl_name(-r-q意味著“快速恢復(fù)模式”)。這將試圖不接觸數(shù)據(jù)文件來修復(fù)索引文件。如果數(shù)據(jù)文件包含它應(yīng)有的一切和在數(shù)據(jù)文件指向正確地點(diǎn)的刪除連接,這應(yīng)該管用并且表可被修復(fù)。開始修理下一張表。否則,使用下列過程:在繼續(xù)前做數(shù)據(jù)文件的一個(gè)備份。使用myisamchk-rtbl_name(-r意味著“恢復(fù)模式”)。這將從數(shù)據(jù)文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件。如果前面的步驟失敗,使用myisamchk--safe-recovertbl_name。安全恢復(fù)模式使用一個(gè)老的恢復(fù)方法,處理常規(guī)恢復(fù)模式不行的少數(shù)情況(但是更慢)。如果在修復(fù)時(shí),你得到奇怪的錯(cuò)誤(例如outofmemory錯(cuò)誤),或如果myisamchk崩潰,到階段3。46數(shù)據(jù)庫維護(hù)修復(fù)階段1:檢查你的表46數(shù)據(jù)庫維護(hù)修復(fù)階段3:困難的修理如果在索引文件的第一個(gè)16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應(yīng)該到這個(gè)階段。在這種情況下,創(chuàng)建一個(gè)新的索引文件是必要的。按如下這樣做:把數(shù)據(jù)文件移更安全的地方。使用表描述文件創(chuàng)建新的(空)數(shù)據(jù)和索引文件:shell>mysqldb_namemysql>DELETEFROMtbl_name;mysql>quit將老的數(shù)據(jù)文件拷貝到新創(chuàng)建的數(shù)據(jù)文件之中。(不要只是將老文件移回新文件之中;你要保留一個(gè)副本以防某些東西出錯(cuò)。)回到階段2?,F(xiàn)在myisamchk-r-q應(yīng)該工作了。(這不應(yīng)該是一個(gè)無限循環(huán))。47數(shù)據(jù)庫維護(hù)修復(fù)階段3:困難的修理47數(shù)據(jù)庫維護(hù)修復(fù)階段4:非常困難的修復(fù)只有描述文件也破壞了,你才應(yīng)該到達(dá)這個(gè)階段。這應(yīng)該從未發(fā)生過,因?yàn)樵诒肀粍?chuàng)建以后,描述文件就不再改變了。從一個(gè)備份恢復(fù)描述文件并且回到階段3。你也可以恢復(fù)索引文件并且回到階段2。對后者,你應(yīng)該用myisamchk-r啟動(dòng)。如果你沒有一個(gè)備份但是確切地知道表是怎樣被創(chuàng)建的,在另一個(gè)數(shù)據(jù)庫中創(chuàng)建表的一個(gè)拷貝。刪除新的數(shù)據(jù)文件,然后從其他數(shù)據(jù)庫將描述和索引文件移到破壞的數(shù)據(jù)庫中。這給了你新的描述和索引文件,但是讓數(shù)據(jù)文件獨(dú)自留下來了。回到階段2并且嘗試重建索引文件。48數(shù)據(jù)庫維護(hù)修復(fù)階段4:非常困難的修復(fù)48用戶權(quán)限管理用戶權(quán)限管理1.設(shè)置用戶與并授權(quán)GRANT命令使用說明,先來看一個(gè)例子,創(chuàng)建一個(gè)只允許從本地登錄的超級用戶ipi,并允許將權(quán)限賦予別的用戶,i314GRANTALLPRIVILEGESON*.*TOipi@'localhost'IDENTIFIEDBY'i314'WITHGRANTOPTION;GRANT命令說明:ALLPRIVILEGES是表示所有權(quán)限,你也可以使用select、update等權(quán)限提到的權(quán)限。ON用來指定權(quán)限針對哪些庫和表。*.*中前面的*號用來指定數(shù)據(jù)庫名,后面的*號用來指定表名。TO表示將權(quán)限賦予某個(gè)用戶。ipi@'localhost'表示ipi用戶,@后面接限制的主機(jī),可以是IP、IP段、域名以及%,%表示任何地方。注意:這里%有的版本不包括本地,以前碰到過給某個(gè)用戶設(shè)置了%允許任何地方登錄,但是在本地登錄不了,這個(gè)和版本有關(guān)系,遇到這個(gè)問題再加一個(gè)localhost的用戶就可以了。IDENTIFIEDBY指定用戶的登錄密碼。WITHGRANTOPTION這個(gè)選項(xiàng)表示該用戶可以將自己擁有的權(quán)限授權(quán)給別人。注意:經(jīng)常有人在創(chuàng)建操作用戶的時(shí)候不指定WITHGRANTOPTION選項(xiàng)導(dǎo)致后來該用戶不能使用GRANT命令創(chuàng)建用戶或者給其他用戶授權(quán)。備注:可以使用GRANT重復(fù)給用戶添加權(quán)限,權(quán)限疊加,比如你先給用戶添加了一個(gè)select權(quán)限,然后又給用戶添加了一個(gè)insert權(quán)限,那么該用戶就同時(shí)擁有了select和insert權(quán)限。49用戶權(quán)限管理用戶權(quán)限管理49用戶權(quán)限管理2.創(chuàng)建一個(gè)超級用戶創(chuàng)建一個(gè)只允許從本地登錄的超級用戶test,并允許將權(quán)限賦予別的用戶,密碼為i314GRANTALLPRIVILEGESON*.*TOtest@'localhost'IDENTIFIEDBY‘i314'WITHGRANTOPTION;3.

創(chuàng)建一個(gè)網(wǎng)站用戶(程序用戶)創(chuàng)建一個(gè)一般的程序用戶,這個(gè)用戶可能只需要SELECT,INSERT,UPDATE,DELETE,CREATETEMPORARYTABLES等權(quán)限如果有存儲過程還需要加上EXECUTE權(quán)限,一般是指定內(nèi)網(wǎng)網(wǎng)段192.168.100網(wǎng)段。GRANTUSAGE,SELECT,INSERT,UPDATE,DELETE,SHOWVIEW,CREATETEMPORARYTABLES,EXECUTEON`test`.*TOtest@'192.168.100.%'IDENTIFIEDBY‘i314';4.

創(chuàng)建一個(gè)普通用戶(僅有查詢權(quán)限)GRANTUSAGE,SELECTON`test`.*TOpublic@'192.168.100.%'IDENTIFIEDBY‘i314';50用戶權(quán)限管理2.創(chuàng)建一個(gè)超級用戶505.

刷新權(quán)限使用這個(gè)命令使權(quán)限生效,尤其是你對那些權(quán)限表user、db、host等做了update或者delete更新的時(shí)候。以前遇到過使用grant后權(quán)限沒有更新的情況,大家可以養(yǎng)成習(xí)慣,只要對權(quán)限做了更改就使用FLUSHPRIVILEGES命令來刷新權(quán)限。FLUSHPRIVILEGES;6.

查看權(quán)限使用如下命令可以方便的查看到某個(gè)用戶的權(quán)限:SHOWGRANTSFOR'webuser'@'192.168.100.%';7.

回收權(quán)限將前面創(chuàng)建的webuser用戶的DELETE權(quán)限回收,使用如下命令REVOKEDELETEONtest.*FROM'webuser'@'192.168.100.%';8.

刪除用戶注意刪除用戶不要使用DELETE直接刪除,因?yàn)槭褂肈ELETE刪除后用戶的權(quán)限并未刪除,新建同名用戶后又會繼承以前的權(quán)限。正確的做法是使用DROPUSER命令刪除用戶,比如要?jiǎng)h除'webuser'@'192.168.100.%'用戶采用如下命令:DROPUSER'webuser'@'192.168.100.%';515.

刷新權(quán)限51謝謝52謝謝52

1、想要體面生活,又覺得打拼辛苦;想要健康身體,又無法堅(jiān)持運(yùn)動(dòng)。人最失敗的,莫過于對自己不負(fù)責(zé)任,連答應(yīng)自己的事都辦不到,又何必抱怨這個(gè)世界都和你作對?人生的道理很簡單,你想要什么,就去付出足夠的努力。

2、時(shí)間是最公平的,活一天就擁有24小時(shí),差別只是珍惜。你若不相信努力和時(shí)光,時(shí)光一定第一個(gè)辜負(fù)你。有夢想就立刻行動(dòng),因?yàn)楝F(xiàn)在過的每一天,都是余生中最年輕的一天。

3、無論正在經(jīng)歷什么,都請不要輕言放棄,因?yàn)閺膩頉]有一種堅(jiān)持會被辜負(fù)。誰的人生不是荊棘前行,生活從來不會一蹴而就,也不會永遠(yuǎn)安穩(wěn),只要努力,就能做獨(dú)一無二平凡可貴的自己。

4、努力本就是年輕人應(yīng)有的狀態(tài),是件充實(shí)且美好的事,可一旦有了表演的成分,就會顯得廉價(jià),努力,不該是為了朋友圈多獲得幾個(gè)贊,不該是每次長篇贅述后的自我感動(dòng),它是一件平凡而自然而然的事,最佳的努力不過是:但行好事,莫問前程。愿努力,成就更好的你!

5、付出努力卻沒能實(shí)現(xiàn)的夢想,愛了很久卻沒能在一起的人,活得用力卻平淡寂寞的青春,遺憾是每一次小的挫折,它磨去最初柔軟的心智、讓我們懂得累積時(shí)間的力量;那些孤獨(dú)沉寂的時(shí)光,讓我們學(xué)會守候內(nèi)心的平和與堅(jiān)定。那些脆弱的不完美,都會在努力和堅(jiān)持下,改變模樣。

6、人生中總會有一段艱難的路,需要自己獨(dú)自走完,沒人幫助,沒人陪伴,不必畏懼,昂頭走過去就是了,經(jīng)歷所有的挫折與磨難,你會發(fā)現(xiàn),自己遠(yuǎn)比想象中要強(qiáng)大得多。多走彎路,才會找到捷徑,經(jīng)歷也是人生,修煉一顆強(qiáng)大的內(nèi)心,做更好的自己!

7、“一定要成功”這種內(nèi)在的推動(dòng)力是我們生命中最神奇最有趣的東西。一個(gè)人要做成大事,絕不能缺少這種力量,因?yàn)檫@種力量能夠驅(qū)動(dòng)人不停地提高自己的能力。一個(gè)人只有先在心里肯定自己,相信自己,才能成就自己!

8、人生的旅途中,最清晰的腳印,往往印在最泥濘的路上,所以,別畏懼暫時(shí)的困頓,即使無人鼓掌,也要全情投入,優(yōu)雅堅(jiān)持。真正改變命運(yùn)的,并不是等來的機(jī)遇,而是我們的態(tài)度。

9、這世上沒有所謂的天才,也沒有不勞而獲的回報(bào),你所看到的每個(gè)光鮮人物,其背后都付出了令人震驚的努力。請相信,你的潛力還遠(yuǎn)遠(yuǎn)沒有爆發(fā)出來,不要給自己的人生設(shè)限,你自以為的極限,只是別人的起點(diǎn)。寫給渴望突破瓶頸、實(shí)現(xiàn)快速跨越的你。

10、生活中,有人給予幫助,那是幸運(yùn),沒人給予幫助,那是命運(yùn)。我們要學(xué)會在幸運(yùn)青睞自己的時(shí)候?qū)W會感恩,在命運(yùn)磨練自己的時(shí)候?qū)W會堅(jiān)韌。這既是對自己的尊重,也是對自己的負(fù)責(zé)。

11、失敗不可怕,可怕的是從來沒有努力過,還怡然自得地安慰自己,連一點(diǎn)點(diǎn)的懊悔都被麻木所掩蓋下去。不能怕,沒什么比自己背叛自己更可怕。

12、跌倒了,一定要爬起來。不爬起來,別人會看不起你,你自己也會失去機(jī)會。在人前微笑,在人后落淚,可這是每個(gè)人都要學(xué)會的成長。

13、要相信,這個(gè)世界上永遠(yuǎn)能夠依靠的只有你自己。所以,管別人怎么看,堅(jiān)持自己的堅(jiān)持,直到堅(jiān)持不下去為止。

14、也許你想要的未來在別人眼里不值一提,也許你已經(jīng)很努力了可還是有人不滿意,也許你的理想離你的距離從來沒有拉近過......但請你繼續(xù)向前走,因?yàn)閯e人看不到你的努力,你卻始終看得見自己。

15、所有的輝煌和偉大,一定伴隨著挫折和跌倒;所有的風(fēng)光背后,一定都是一串串揉和著淚水和汗水的腳印。

16、成功的反義詞不是失敗,而是從未行動(dòng)。有一天你總會明白,遺憾比失敗更讓你難以面對。

17、沒有一件事情可以一下子把你打垮,也不會有一件事情可以讓你一步登天,慢慢走,慢慢看,生命是一個(gè)慢慢累積的過程。

18、努力也許不等于成功,可是那段追逐夢想的努力,會讓你找到一個(gè)更好的自己,一個(gè)沉默努力充實(shí)安靜的自己。

19、你相信夢想,夢想才會相信你。有一種落差是,你配不上自己的野心,也辜負(fù)了所受的苦難。

20、生活不會按你想要的方式進(jìn)行,它會給你一段時(shí)間,讓你孤獨(dú)、迷茫又沉默憂郁。但如果靠這段時(shí)間跟自己獨(dú)處,多看一本書,去做可以做的事,放下過去的人,等你度過低潮,那些獨(dú)處的時(shí)光必定能照亮你的路,也是這些不堪陪你成熟。所以,現(xiàn)在沒那么糟,看似生活對你的虧欠,其實(shí)都是祝愿。1、想要體面生活,又覺得打拼辛苦;想要健康身體,又無法堅(jiān)53MySQL數(shù)據(jù)庫培訓(xùn)資料講義課件54MySQL數(shù)據(jù)庫介紹深圳市艾派應(yīng)用系統(tǒng)有限公司55MySQL數(shù)據(jù)庫介紹深圳市艾派應(yīng)用系統(tǒng)有限公司1Mysql簡介Mysql數(shù)據(jù)庫簡介Mysql常用操作Mysql管理維護(hù)Mysql數(shù)據(jù)庫特點(diǎn)越來越多的企業(yè)級特性Mysql數(shù)據(jù)庫安裝Mysql連接工具M(jìn)ysql體系結(jié)構(gòu)表引擎字符集問題常用數(shù)據(jù)類型常用Sql語句數(shù)據(jù)庫備份數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫維護(hù)與修復(fù)用戶權(quán)限管理MySQL數(shù)據(jù)庫培訓(xùn)目錄數(shù)據(jù)庫安全加固56Mysql簡介Mysql數(shù)據(jù)庫簡介Mysql常用操作MysqMySQL簡介MySQL常用操作MySQL管理維護(hù)57MySQL簡介3常用的數(shù)據(jù)庫服務(wù)器:商業(yè):oracle,SQLserver,DB2開源:MySQL,postgreSQL,SQLiteMySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購,對于Mysql的前途,沒有任何人抱樂觀的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。分標(biāo)準(zhǔn)版和企業(yè)版本,企業(yè)版本提供EnterpriseMonitor工具,目前版本已經(jīng)到達(dá)MySQL6。MySQL數(shù)據(jù)庫簡介58常用的數(shù)據(jù)庫服務(wù)器:MySQL數(shù)據(jù)庫簡介4開放源代碼小巧易用高性能低成本(是ORACLE價(jià)格的1/10)高可靠高速發(fā)展的數(shù)據(jù)庫幾乎支持所有的平臺廣泛應(yīng)用在嵌入式、網(wǎng)站應(yīng)用、企業(yè)級應(yīng)用J2EE架構(gòu)、.NET架構(gòu)、還有LAMP架構(gòu)眾多的第三方支持(與LINBIT達(dá)成合作伙伴關(guān)系)支持web2.0得天獨(dú)厚MySQL數(shù)據(jù)庫特點(diǎn)59開放源代碼MySQL數(shù)據(jù)庫特點(diǎn)5MySQL的技術(shù)進(jìn)展MySQL3.23開始支持外鍵(InnoDB)MySQL4.1開始支持R-trees索引(MyISAM)MySQL從5.0開始,全面支持視圖、存儲過程、函數(shù)和觸發(fā)器功能MySQL5.1支持分區(qū)功能MySQL5.1支持行復(fù)制MySQL6.0將實(shí)現(xiàn)雙向復(fù)制逐步增加對非結(jié)構(gòu)化數(shù)據(jù)XML的支持特性MySQL6.0將支持最新的FALCON存儲引擎著名的數(shù)據(jù)庫大師JimStarkey現(xiàn)在在MySQL開發(fā)Falcon。Falcon面向的客戶是企業(yè)級用戶。Oracle跟MySQL簽定了合作協(xié)議,用戶可以繼續(xù)選擇InnoDB存儲引擎越來越多的企業(yè)級特性60MySQL的技術(shù)進(jìn)展越來越多的企業(yè)級特性6軟件下載登陸官方網(wǎng)站,下載最新的released版本。創(chuàng)建MySQL用戶和用戶組#groupaddmysql#useradd-r-gmysqlmysql解壓MySQL #cd/usr/local #tarzxvf/opt/mysql-5.5.8-linux2.6-i686.tar.gz #ln-s/usr/local/mysql-5.5.8-linux2.6-i686mysql基于Linix/Unix的安裝61軟件下載基于Linix/Unix的安裝7賦予MySQL用戶權(quán)限 #cdmysql #chown-Rmysql. #chgrp-Rmysql.安裝MySQL#scripts/mysql_install_db--user=mysql#chown-Rmysqldata#cp/usr/local/mysql/support-files/f/etc/fMySQL的啟動(dòng)與停止 #bin/mysqld_safe--user=mysql& #cp/usr/local/mysql/support-files/mysql.server/etc/init.d/mysql.server #/etc/init.d/mysql.serverstart/stop/restart基于Linix/Unix的安裝62賦予MySQL用戶權(quán)限基于Linix/Unix的安裝8更改數(shù)據(jù)庫root用戶的密碼 #./bin/mysqladmin-urootpassword'testtest'打開MySQL遠(yuǎn)程控制#./bin/mysql-uroot-p#grantallprivilegeson*.*to'root'@'1'identifiedby'testtest'withgrantoption;#flushprivileges;#updatedbsethost='1'whereuser='root';#flushprivileges;基于Linix/Unix的安裝63更改數(shù)據(jù)庫root用戶的密碼基于Linix/Unix的安裝9基于Windows的安裝64基于Windows的安裝10數(shù)據(jù)庫配置65數(shù)據(jù)庫配置11Windows下數(shù)據(jù)庫的停用和啟用66Windows下數(shù)據(jù)庫的停用和啟用12MySQL工具M(jìn)ySQL-Front一款小巧的管理MySQL的應(yīng)用程序。主要特性包括多文檔界面,語法突出,拖拽方式的數(shù)據(jù)庫和表格,可編輯/可增加/刪除的域,可編輯/可插入/刪除的記錄,可顯示的成員,可執(zhí)行的SQL腳本,提供與外程序接口,保存數(shù)據(jù)到CSV文件等。MySQLAdministratorMySQLAdministrator是用來執(zhí)行數(shù)據(jù)庫管理操作的程序和用來監(jiān)視和管理MySQL實(shí)例內(nèi)的數(shù)據(jù)庫、用戶的權(quán)限和數(shù)據(jù)的實(shí)用程序,比如說配置、控制、開啟和關(guān)閉mysql服務(wù)。

MySQLQueryBrowserMySQLQueryBrowser是一個(gè)可視化的toolset,用于創(chuàng)建、執(zhí)行以及最優(yōu)化的MySQL數(shù)據(jù)庫查詢。它就像是鑲嵌在Web瀏覽器中的一個(gè)集成的拖曳工具套件,為使用者提供了一個(gè)更簡便、更有生產(chǎn)力的途徑來存取、分析存儲在MySQL數(shù)據(jù)庫服務(wù)器中的信息。67MySQL工具M(jìn)ySQL-Front13MySQL簡介MySQL常用操作MySQL管理維護(hù)68MySQL簡介14mysql體系結(jié)構(gòu)69mysql體系結(jié)構(gòu)15設(shè)有張馬虎,李小心兩人,都是地鐵口的自行車管理員.每天都有很多人來存取自行車,張馬虎的管理方式是:來存自己存,不記錄存的是什么車,取時(shí)交5毛,也不檢查取的是否是自己的車.李小心呢,則在存取自己車時(shí),記錄存車人的特征與自行車的特征,當(dāng)人來取車,還要小心核一下,人與車的特征是否對應(yīng)思考:張馬虎和李小心誰對業(yè)務(wù)的處理速度更高?二者誰對自行車管理更安全?數(shù)據(jù)庫對同樣的數(shù)據(jù),有著不同的存儲方式和管理方式在mysql中,稱為存儲引擎存儲引擎的概念70設(shè)有張馬虎,李小心兩人,都是地鐵口的自行車管理員.數(shù)據(jù)庫對同多種可選擇的存儲引擎MyISAMInnoDBMERGEMEMORY(HEAP)BDB(BerkeleyDB)EXAMPLEFEDERATEDARCHIVECSVBLACKHOLEFALCON可插拔式的存儲引擎71多種可選擇的存儲引擎可插拔式的存儲引擎17MyISAM是MySQL的默認(rèn)存儲引擎文章,新聞等安全性要求不高的,選myisam訂單,資金,賬單,火車票等對安全性要求高的,可以選用innodb對于臨時(shí)中轉(zhuǎn)表,可以用memory型,速度最快存儲引擎的選擇出于速度和安全性的要求,選取合理的存儲引擎72MyISAM是MySQL的默認(rèn)存儲引擎訂單,資金,賬單,火車查看存儲引擎查看數(shù)據(jù)庫可以支持的存儲引擎mysql>showengines;73查看存儲引擎查看數(shù)據(jù)庫可以支持的存儲引擎19查看表的結(jié)構(gòu)等信息的若干命令

1.Desc[ribe]tablename;//查看數(shù)據(jù)表的結(jié)構(gòu)

2.showtablestatuslike‘tablename’//顯示表的當(dāng)前狀態(tài)值3.showtablestatuslike‘tablename’\G//顯示表的當(dāng)前狀態(tài)值

74查看表的結(jié)構(gòu)等信息的若干命令

1.Desc[ribe]ta創(chuàng)建數(shù)據(jù)庫表時(shí)設(shè)置存儲存儲引擎的基本語法是:

CreatetabletableName(

columnName(列名1)

type(數(shù)據(jù)類型)

attri(屬性設(shè)置),

columnName(列名2)

type(數(shù)據(jù)類型)

attri(屬性設(shè)置),

……..)engine=engineName例如,假設(shè)要?jiǎng)?chuàng)建一個(gè)名為user的表,此表包括id,用戶名username和性別sex三個(gè)字段,并且要設(shè)置表類型為merge。則可用如下的方式創(chuàng)建此數(shù)據(jù)表,createtableuser(

idintnotnullauto_increment,

usernamechar(20)notnull,

sexchar(2),

primarykey(id))engine=merge

75創(chuàng)建數(shù)據(jù)庫表時(shí)設(shè)置存儲存儲引擎的基本語法是:

Create

修改存儲引擎可以用命令A(yù)ltertabletableNameengine=engineName假如,若需要將表user的存儲引擎修改為InnoDB類型,則可使用命令altertableuserengine=InnoDB。如下圖所示:

查看修改后的表類型,可見表類型已經(jīng)變?yōu)镮nnoDB類型。

76

修改存儲引擎22一句話說字符集字符集就是一個(gè)字符<->二進(jìn)制字節(jié)的映射表考慮多語言與移植的問題,選取合理的字符集字符集是一套符號和編碼的規(guī)則,不論是在oracle數(shù)據(jù)庫還是在mysql數(shù)據(jù)庫,都存在字符集的選擇問題,而且如果在數(shù)據(jù)庫創(chuàng)建階段沒有正確選擇字符集,那么可能在后期需要更換字符集,而字符集的更換是代價(jià)比較高的操作,也存在一定的風(fēng)險(xiǎn),所以,我們推薦在應(yīng)用開始階段,就按照需求正確的選擇合適的字符集,避免后期不必要的調(diào)整。字符集(charset)77一句話說字符集字符集是一套符號和編碼的規(guī)則,不論是在ora1:節(jié)省空間建議在能夠完全滿足應(yīng)用的前提下,盡量使用小的字符集。因?yàn)楦〉淖址馕吨軌蚬?jié)省空間、減少網(wǎng)絡(luò)傳輸字節(jié)數(shù),同時(shí)由于存儲空間的較小間接的提高了系統(tǒng)的性能。有很多字符集可以保存漢字,比如utf8、gb2312、gbk、gb18030等等,但是常用的是gb2312和gbk。2:兼容性因?yàn)間b2312字庫比gbk字庫小,有些偏僻字(例如:洺)不能保存,因此在選擇字符集的時(shí)候一定要權(quán)衡這些偏僻字在應(yīng)用出現(xiàn)的幾率以及造成的影響。3:發(fā)展空間在互聯(lián)網(wǎng)上,國際化的趨勢不可避免,且存儲空間已經(jīng)越來海量化,因此推薦用utf8,如果開發(fā)內(nèi)網(wǎng)系統(tǒng),如內(nèi)部OA等,可以考慮GBK。字符集的選擇781:節(jié)省空間字符集的選擇24查看MySQL數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫MySQL字符集。mysql>

showvariableslike'character_set_%';

+--------------------------+-------------------------------------+------

|

Variable_name

|

Value

|......

+--------------------------+-------------------------------------+------

|

character_set_client

|

utf8

|......

--

客戶端字符集

|

character_set_connection

|

utf8

|......

|

character_set_database

|

utf8

|......

--

數(shù)據(jù)庫字符集

|

character_set_filesystem

|

binary

|......

|

character_set_results

|

utf8

|......

|

character_set_server

|

utf8

|......

--

服務(wù)器字符集

|

character_set_system

|

utf8

|......

|

character_sets_dir

|

D:\MySQL

Server

5.0\share\charsets\

|......

+--------------------------+-------------------------------------+------

79查看MySQL數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫MySQL字符集。25查看MySQL數(shù)據(jù)表(table)的MySQL字符集mysql>

show

table

status

from

庫名

like

‘%表名%';

+-----------+--------+---------+------------+------+-----------------+------

|

Name

|

Engine

|

Version

|

Row_format

|

Rows

|

Collation

|......

+-----------+--------+---------+------------+------+-----------------+------

|

countries

|

InnoDB

|

10

|

Compact

|

11

|

utf8_general_ci

|......

+-----------+--------+---------+------------+------+-----------------+------

查看MySQL數(shù)據(jù)列(column)的MySQL字符集。mysql>

show

full

columns

from

表名;

+----------------------+-------------+-----------------+--------

|

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

|

.......

|

address_format_id

|

int(11)

|

NULL

|

.......

+----------------------+-------------+-----------------+--------

80查看MySQL數(shù)據(jù)表(table)的MySQL字符集26修改字符集:MySQL:修改默認(rèn)字符集(MySQL5.X)1.修改MySQL數(shù)據(jù)庫默認(rèn)字符集(mysqldatabasedefaultcharacterset)alterdatabasetestdbdefaultcharacterset=gb2312;2.修改MySQL數(shù)據(jù)表默認(rèn)字符集(mysqltabledefaultcharacterset)altertableip_to_countrydefaultcharacterset=gb2312;3.修改列級修改示例:mysql>AlterTABLE`products`CHANGE`products_model``products_model`VARCHAR(20)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL;更改了后永久生效4.更改連接字符集a.臨時(shí)更改:mysql>SETNAMESutf8;b.永久更改:shell>vi/etc/f在[client]中增加:default-character-set=utf8注意:修改MySQL的默認(rèn)字符集,不管是在數(shù)據(jù)庫級別,還是數(shù)據(jù)表級別,對已經(jīng)存儲的字符數(shù)據(jù)無任何改變。只是新增的表或列,開始使用新的字符集。

81修改字符集:275.修改服務(wù)器級字符集a.臨時(shí)更改:mysql>SETGLOBALcharacter_set_server=utf8;b.永久更改:shell>vi/etc/f[mysqld]default-character-set=utf8配置/etc/f文件:(linux下local為UTF-8);

分別在如下幾項(xiàng)中添加字符集:[client]default-character-set=utf8[mysqld_safe]default-character-set=utf8[mysqld]default-character-set=utf8#default-table-type=innodb[mysql]default-character-set=gb2312再重啟mysql讓配置生效:servicemysqlrestart

再執(zhí)行:showvariableslike'%character%';825.修改服務(wù)器級字符集28轉(zhuǎn)換MySQL數(shù)據(jù)表字符集(mysqltablecharacterset)1.MySQL中有一個(gè)數(shù)據(jù)表ip_to_country,以前該表字符列數(shù)據(jù)都是以utf8編碼格式存放的,現(xiàn)在想轉(zhuǎn)換為gb2312編碼格式存放。需要使用MySQL轉(zhuǎn)換字符集命令:converttocharactersetaltertableip_to_countryconverttocharactersetgb2312;提示:convertto也會把數(shù)據(jù)表ip_to_country的默認(rèn)字符集從utf8更改為gb2312。

2.轉(zhuǎn)換MySQL數(shù)據(jù)表中某個(gè)列的字符集(mysqlcolumncharacterset)altertableip_to_countrymodifycountry_namevarchar(50)charactersetgb2312;這個(gè)語句把單獨(dú)一個(gè)列country_name的字符集轉(zhuǎn)換為gb2312。這在用法在實(shí)際中比較少見,因?yàn)榇蠖鄶?shù)情況下,都是改變整個(gè)表的字符集。83轉(zhuǎn)換MySQL數(shù)據(jù)表字符集(mysqltablech舊數(shù)據(jù)庫GBK字符集舊網(wǎng)站系統(tǒng)GBK編碼新網(wǎng)站utf8編碼思考:數(shù)據(jù)庫不準(zhǔn)動(dòng),新站又是utf8,如何保持新網(wǎng)站與舊數(shù)據(jù)的兼容?字符集專題-新舊網(wǎng)站并存案例84舊數(shù)據(jù)庫舊網(wǎng)站系統(tǒng)新網(wǎng)站思考:字符集專題-新舊網(wǎng)站并存案例3

數(shù)字類型字符串類型日期時(shí)間類型選擇正確的數(shù)據(jù)類型數(shù)據(jù)類型85數(shù)字類型數(shù)據(jù)類型31數(shù)字類型86數(shù)字類型32日期和時(shí)間類型87日期和時(shí)間類型33字符串類型88字符串類型34通常我們應(yīng)該選擇盡可能小的數(shù)據(jù)類型,這樣可以節(jié)省空間,并且可以更快地進(jìn)行訪問和更新。但應(yīng)該注意需要保存的數(shù)據(jù)的范圍,如果選擇的類型太小,數(shù)據(jù)可能會在插入時(shí)被截?cái)嗷虍a(chǎn)生錯(cuò)誤,所以一定要選擇一個(gè)覆蓋所有可能性的數(shù)據(jù)類型為了優(yōu)化存儲,在任何情況下均應(yīng)使用最精確的類型。例如,如果列的值的范圍為從1到99999,若使用整數(shù),則MEDIUMINT

溫馨提示

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

評論

0/150

提交評論