MySQL是一個(gè)遵循GPL的開源軟件、在Linux平臺底下它是LAMP(LAMP 在英語中是“燈”的意思,但是在 IT 行業(yè)當(dāng)然不是那么簡單的一個(gè)意思了。這個(gè)術(shù)語在德國十分流行。代表了 Linux 平臺上的 Apache 網(wǎng)站服務(wù)器;MySQL 數(shù)據(jù)庫以及 Perl 、Python 或者 PHP 編程語言的結(jié)合)組合重要組成部分。同時(shí)它提供的C API可以結(jié)合Glade/GTK+,可以代替Windows平臺的VB+ACCESS/MS SQL SERVER組合。本篇文章介紹數(shù)據(jù)庫MySQL及其各種工具的簡單用法.
一、為什么使用MySQL:MySQL是一種高性能的數(shù)據(jù)庫,因?yàn)槿缦略?。它可以和市場下任何同類的產(chǎn)品競爭。
1 速度。MySQL本身并不復(fù)雜。http://www.mysql.com/information/crash-me.php上可以找到MySQL和其他數(shù)據(jù)庫產(chǎn)品進(jìn)行競爭的數(shù)據(jù)的相關(guān)信息
2 可升級性。MySQL能夠同時(shí)處理無限數(shù)量的擁護(hù)和5億個(gè)紀(jì)錄
3 簡單性。MySQL的核心是一個(gè)小而快速的數(shù)據(jù)庫,面向那些了解數(shù)據(jù)庫工作的人員,是他們能夠有效的工作和編寫高級功能。
4 價(jià)值:MySQL是遵循GPL協(xié)議的自由軟件,你可以下載并且使用它。
5 可移植性。因?yàn)镸ySQL是開放源代碼的自由軟件,可以運(yùn)行于所有的平臺,如果不能運(yùn)行于你的平臺,你可以修改、編譯源代碼。
二、MySQL缺少什么
MySQL所保護(hù)的都是基于權(quán)限的,不是基于市場的。MySQL能做什么和不能做什么是我們在使用之前需要清楚的。
1 圖形界面:MySQL開始提供類似MS SQL Server的界面,尚處于測試中
2 事務(wù)處理:MySQL不支持事務(wù)處理,但是2000年5月9日的發(fā)行說明中,MySQL宣稱版本3.23.15“試驗(yàn)性支持”Sleepy Software的Berkely DB數(shù)據(jù)庫。版本3.23.25完全實(shí)現(xiàn)了這一個(gè)功能。
3 存儲(chǔ)過程:MySQL沒有存儲(chǔ)過程機(jī)制。MySQL開發(fā)團(tuán)體的“to do”列表中有一種存儲(chǔ)過程機(jī)制,它將包含在版本4中。
4 觸發(fā)器:觸發(fā)器是一種程序,通常存在于一種嵌入式腳本語言如Zend或者Python中。有消息說這種觸發(fā)器會(huì)應(yīng)用于版本4中,使用Zend腳本引擎。
5 參照完整性:將來支持
6 記錄等級鎖定:MySQL不支持記錄等級鎖定。將來會(huì)改善,這都是開放源代碼的力量。
7 子查詢:MySQL不支持子查詢。但是通過它提供的C語言接口可以很容易的彌補(bǔ)。
8 視圖:MySQL不支持視圖。但是它在MySQL開發(fā)團(tuán)體的to do列表中。
很清楚地看到MySQL對于轉(zhuǎn)向Linux的平臺應(yīng)用的將來的意義。
三、MySQL數(shù)據(jù)庫系統(tǒng)的安裝
這里只討論在Linux系統(tǒng)下的MySQL數(shù)據(jù)庫系統(tǒng)的安裝,可以通過RPM包安裝和tar包安裝,這里只討論RPM方式安裝Binary。
通過RPM包安裝,你需要下面三個(gè)文件:
1、 MySQL-3.23.25-1.i386.rpm這是一個(gè)服務(wù)器部分。它包含接受請求和返回結(jié)果的實(shí)際數(shù)據(jù)庫服務(wù)器
2、 MySQL-client-3.23.25-1.i386.rpm這是客戶端部分。
3、 MySQL-devel-3.23.25-1.i386.rpm.從這個(gè)文件中,你需要一個(gè)C API文件。
安裝過程如下:首先安裝服務(wù)器部分,然后安裝客戶端部分,最后需要安裝C程序開發(fā)需要的文件。
1、 安裝服務(wù)器
鍵入如下命令:#rpm –ivh MySQL-3.23.25-1.i386.rpm
2、 安裝客戶端
鍵入如下命令:#rpm –ivh MySQL-client-3.23.25-1.i386.rpm
3、 安裝C開發(fā)文件
鍵入如下命令:#rpm –ivh MySQL-devel-3.23.25-1.i386.rpm
4、 卸載MySQL: 首先需要關(guān)閉服務(wù)器
#mysqladmin shutdown
#rpm –e –vv MySQL-3.23.25-1
#rpm –e –vv MySQL-client-3.23.25-1
5、 安裝賬號管理MySQL服務(wù)器:從RPM安裝。Mysql用戶賬號會(huì)自動(dòng)創(chuàng)建。這是一個(gè)用來運(yùn)行MySQL的服務(wù)的用戶。
更改mysqladmin口令:為了增強(qiáng)安全性,需要為mysql的根用戶改變口令,這可以通過下面的兩個(gè)命令來完成
%mysqladmin –u root –p password ‘new-password’
或者
%mysqladmin –u root –h servername –p password ‘new-password’
四、啟動(dòng)和停止MySQL服務(wù)器Daemon
使用RPM安裝,MySQL服務(wù)器dameon自動(dòng)為你啟動(dòng)和停止,RedHat的系統(tǒng)在/etc/init.d/mysqld的MySQL服務(wù)器腳本。
如果由于某些原因,你需要啟動(dòng)MySQL dameon,是用如下命令
%safe_mysqld –user=mysql &
要關(guān)閉MySQL服務(wù)器dameon,發(fā)送入下命令:
%mysqladmin shutdown
五、應(yīng)用于MySQL的工具和程序
Isamchk和myisamchk是驗(yàn)證和重修數(shù)據(jù)庫表和文件的工具。Mysqlaccess 用于授權(quán)、更改和撤銷用戶許可權(quán)限。Mysqladmin是一種高級管理工具,如創(chuàng)建數(shù)據(jù)庫和關(guān)閉數(shù)據(jù)庫等。Mysqldump用于在緊急關(guān)頭倒出數(shù)據(jù)和備份表,它在SQL insert語句中輸出數(shù)據(jù),所使用的方法能夠?qū)⑤敵鑫募答伒組ySQL服務(wù)器,并且行也將被裝載。Mysqlimport是一種整體裝載工具,而mysqlshow顯示關(guān)于數(shù)據(jù)庫對象的信息(如標(biāo))。
1.isamchk:查看和修理被毀壞的表
如果由于某些未知的原因,是數(shù)據(jù)庫表被毀壞,這個(gè)工具能夠?qū)λM(jìn)行修補(bǔ)。容納基本數(shù)據(jù)的數(shù)據(jù)文件叫做索引順序存取法(Index Sequential Access Method,ISAM)文件。MySQL在3.23和更高版本中將MyISAM文件格式作為了默認(rèn)選項(xiàng)。需要使用myisamchk工具,而不是isamchk。ISAM表結(jié)構(gòu)被MyISAM結(jié)構(gòu)替換。將來ISAM將不被支持。下面重點(diǎn)介紹一下MyISAM文件結(jié)構(gòu):
ISAM舊文件結(jié)構(gòu):數(shù)據(jù)庫中的每一個(gè)表實(shí)際上是三個(gè)文件的組合:*.ISD文件包含數(shù)據(jù),*.ISM文件包含關(guān)于數(shù)據(jù)結(jié)構(gòu)的信息,比如密鑰和索引,*.frm文件包含表的結(jié)構(gòu)。
查看/var/lib/mysql/test_db/目錄中發(fā)現(xiàn)三個(gè)文件
tb1_books_1.frm 88bytes
tb1_books_1.MYI 1024 bytes
tb1_books_1.MYD 8604 bytes
*.frm和舊的文件結(jié)構(gòu)相同,*.MYI文件和*.ISM文件一致,并且*.MYD文件符合舊的*.ISD文件。
2.myisamchk
這是MyISAM存儲(chǔ)格式的isamchk的更新版本工具,它的基本用法如下所示:
myisamchk [OPTIONS] tables..MYI
利用如下命令可以得到你的系統(tǒng)中可以使用的全部選項(xiàng)列表
3.mysqlaccess這個(gè)工具最值得討論的就是-howto命令行,當(dāng)你執(zhí)行一下命令的時(shí)候,你就得到一個(gè)如何使用這個(gè)工具的例子:
%mysqlaccess –howto
mysqlaccess的使用方法相當(dāng)簡單:
mysqlaccess [host [user [db]]] OPTIONS.。如果沒有提供選項(xiàng),那么就必須提供user和db。如果沒有指定主機(jī),則用本地服務(wù)器。
4.mysqladmin
這個(gè)命令的常規(guī)用法如下:
mysqladmin [OPTION] command,選項(xiàng)是標(biāo)準(zhǔn)的Unix命令方式:-v用于詳細(xì)說明,-t=XX指連接到服務(wù)器的超時(shí)時(shí)間。使用命令
%mysqladmin -?| more可以看到所有的列表。Command部分用于規(guī)則的條件?,F(xiàn)免得列表中是常用的command
命令
說明
Create db_name
創(chuàng)建一個(gè)叫做db_name的數(shù)據(jù)庫
Drop db_name
刪除數(shù)據(jù)庫名稱
Flush-logs
清除所有日志
Flush-privileges或者reload
重載授權(quán)表,或者執(zhí)行相同操作的命令
Ping
查看mysqld是否啟動(dòng)
Shutdown
關(guān)閉數(shù)據(jù)庫
Status
查看服務(wù)器的狀態(tài)
5.ysqldump
這是一個(gè)用于備份、移植或者重載數(shù)據(jù)庫的工具。命令用法有以下兩種:
%mysqldump [OPTIONS] database [tables]
或者
%mysqldump [OPTIONS]。在使用第二種方法時(shí),你必須提供-databases或者—all-databases選項(xiàng)
6.mysqlimport
這是MySQL的大量輸入工具,它類似于MS SQL Server的bcp工具。它是LOAD DATA語句的命令行接口,用法如下:
%mysqlimport [OPTIONS] db_name file_name
7.mysqlshow
mysqlshow 給出了關(guān)于數(shù)據(jù)庫、表或者列的信息,它是show語句的命令行接口
用法:
%mysqlshow [OPTIONS] [database_name [table_name [column]]]
8.myisampack
myisampack可以把一個(gè)MyISAM表壓縮到一個(gè)相對小的空間。他有點(diǎn)象gzip,只是它運(yùn)行于表中。它運(yùn)行于.MYD文件,并且把它壓縮到一個(gè)很小的尺寸。運(yùn)行myisampack之后,你可以查看表,但是不能更新表。
新聞熱點(diǎn)
疑難解答
圖片精選