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