MySQL數(shù)據(jù)庫服務(wù)器的配置
隨著互聯(lián)網(wǎng)的發(fā)展和自由軟件軟件的日益活躍,越來越多的人開始將各種數(shù)據(jù)庫應(yīng)用于自己的網(wǎng)絡(luò)應(yīng)用中。于是,各種各樣的數(shù)據(jù)庫系統(tǒng)出現(xiàn)在互聯(lián)網(wǎng)的舞臺上,最常見的數(shù)據(jù)庫有O'Reilly Network的MySQL 和PostgreSQL Inc的 PostgreSQL,在互聯(lián)網(wǎng)有著不同的應(yīng)用和用戶群。此外象oracle、sybase、infomix等大型數(shù)據(jù)庫也開始漸漸向Linux平臺移植,使得Linux下的數(shù)據(jù)庫日益呈現(xiàn)多樣化和專業(yè)化的趨勢。
1.為什么要使用數(shù)據(jù)庫
為了建立交互站點,你需要使用數(shù)據(jù)庫來存儲來自訪問者的信息。例如,你要建立一個 職業(yè)介紹服務(wù)的站點,你就需要存儲諸如個人簡歷,所感興趣的工作等等這樣的信息。 創(chuàng)建動態(tài)網(wǎng)頁也需要使用數(shù)據(jù)庫,如果你想顯示符合來訪者要求的最好的工作,你就需要從數(shù)據(jù)庫中取出這份工作的信息。你將會發(fā)現(xiàn),在許多情況下需要使用數(shù)據(jù)庫。
2.如何取得數(shù)據(jù)庫軟件
現(xiàn)下流行的Linux數(shù)據(jù)庫基本都可以通過INTERNET下載的到,你可以從以下幾個地方下載MySql數(shù)據(jù)庫:
Mysql:到本書出版為止,mysql的最新版本號是3.23.22
http://www.mysql.com
3. mysql的安裝和使用:
3.1.安裝前的準(zhǔn)備工作:
MySQL需要至少Linux 2.0。
MySQL的Perl支持要求Perl 5.004_03或更新。
Mysql在Linux下的安裝有兩種:1) 源碼方式的安裝,取得mysql的安裝tar包后自行編譯安裝;2〕二進(jìn)制方式的安裝,用MYSQL編譯好的二進(jìn)制文件安裝,主要是以RPM的形式進(jìn)行安裝。
二進(jìn)制分發(fā)通過在你選擇的安裝地點(典型的"/usr/local/mysql")解壓縮來安裝,并且在該處創(chuàng)建下列目錄(表.1):
表.1
目錄 目錄的內(nèi)容
"bin" 客戶程序和mysqld服務(wù)器
"data" 日志文件, 數(shù)據(jù)庫
"include" 包含(頭)文件
"lib" 庫文件
"scripts" mysql_install_db
"share/mysql " 錯誤消息文件
"sql-bench" 基準(zhǔn)程序
源代碼分發(fā)在你配置并編譯后進(jìn)行安裝。缺省地,安裝步驟將文件安裝在"/usr/local"下的下<SPAN title="常規(guī)詞語,單擊這里可以查看解釋" style="BACKGROUND-IMAGE: url(C:PROGRA~1!SUNVDFKC3000
ormmark.gif); BACKGROUND-POSITION: left bottom; BACKGROUND-REPEAT: repeat-x; CURSOR: hand" )>列子</SPAN>目錄(表.2):
表.2
目錄 目錄的內(nèi)容
"bin" 客戶程序和腳本
"include/mysql" 包含(頭)文件
"info" Info格式的文檔
"lib/mysql" 庫文件
"libexec" mysqld服務(wù)器
"share/mysql" 錯誤消息文件
"sql-bench" 基準(zhǔn)程序和crash-me測試
"var" 數(shù)據(jù)庫和日志文件。
在一個安裝目錄內(nèi),源代碼安裝的布局在下列方面不同于二進(jìn)制安裝:
* mysqld服務(wù)器被安裝在"libexec"目錄而不是"bin"目錄內(nèi)。
* 數(shù)據(jù)目錄是"var"而非"data"。
* mysql_install_db被安裝在"/usr/local/bin"目錄而非"/usr/local/mysql/scripts"內(nèi)。
* 頭文件和庫目錄是"include/mysql"和"lib/mysql"而非"include"和"lib"。
3.2.用mysql的源碼包進(jìn)行安裝
你需要下列工具構(gòu)造并安裝MySQL源代碼:
* GNU gunzip解壓縮該分發(fā)。
* 一個合適的tar解包分發(fā)。GNU tar已知可以工作。
* 一個能運(yùn)行的ANSI C++編譯器。gcc> = 2.8.1 、egcs> = 1.0.2 、SGI C++和SunPro C++是一些已知能工作編譯器。 當(dāng)使gcc用時,不需要libg++。gcc2.7.x 有一個bug,使得它可能不能編譯一些完全合法的C++文件,例如"sql/sql_base.cc"。如果你僅有g(shù)cc2.7.x,你必須升級gcc才能編譯MySQL。
* 一個優(yōu)秀的make程序。GNU make總是被推薦且有時必須。如果你有問題,我們推薦試一試GNU make3.75或更新。
* 你要擁有系統(tǒng)的root權(quán)限。
3.2.1.快速安裝:
其實mysql源碼是個非常適合linux初學(xué)者安裝的數(shù)據(jù)庫,他的快速安裝極為簡便,在默認(rèn)情況下mysql是安裝在/usr/local/下的,包括他的BIN文件以及數(shù)據(jù)結(jié)構(gòu)等。
# tar zxvf tarfile.tar.gz
# cd mysql_src_dir
#./configure
#make
#make install
#make clean
這樣的快速安裝方法就把mysql安裝成系統(tǒng)的默認(rèn)狀態(tài)
3.2.2.配置安裝:
用上述的方法對源碼解包后,就可以根據(jù)自己的需要利用configure對Mysql進(jìn)行安裝配置了
1.Configure選項:
configure腳本給你一個很大的控制權(quán)來如何配置你的MySQL。你使用configure命令行的選項進(jìn)行。你也可以用正確的環(huán)境變量作用于configure。對于一個由configure支持的選擇列表,運(yùn)行這個命令:
#./configure -- help
一些更常用的configure選項見下面的描述:
* 只編譯MySQL客戶庫和客戶程序而不是服務(wù)器,使用--without-server選項:
# ./configure --without-server
如果你沒有一個 C++ 編譯器,mysql將不編譯(有一個客戶程序需要C++)。在這種情況下,你可以去掉configure里面測試C++編譯器的代碼,然后運(yùn)行帶有 --without-server選項的./configure。編譯步驟步將仍然嘗試構(gòu)造mysql,但是你可以忽略任何關(guān)于" mysql.cc "的警告。(如果make停止,試試make -k告訴它即使出錯繼續(xù)剩下的構(gòu)造步驟)。
* 如果你不想要位于"/usr/local/var"目錄下面的日志(log)文件和數(shù)據(jù)庫,使用類似于下列configure命令的一個:
* #./configure --prefix=/usr/local/mysql
* #./configure --prefix=/usr/local --localstatedir=/usr/local/mysql/data
第一個命令改變安裝前綴以便任何東西被安裝在"/usr/local/mysql"下面而非缺省的“/usr/local”。第二個命令保留缺省安裝前綴,但是覆蓋了數(shù)據(jù)庫目錄缺省目錄(通常是"/usr/local/var")并且把它改/usr/local/mysql/data.
* 如果你正在使用Linux并且你想要MySQL的套接字位于缺省地點以外的某個地方(通常在目錄"/tmp"或"/var/run",使用象這樣的configure的命令:
#./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
注意給出的文件必須是一個絕對路徑!
* 如果你想編譯靜態(tài)鏈接程序運(yùn)行configure:
* #./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
* 如果你正在使用gcc并且沒有安裝libg++或libstdc++,你可以告訴configure使用gcc作為C++編譯器:
#CC=gcc CXX=gcc ./configure
當(dāng)你使用時gcc作為C++編譯器是,它將不試圖鏈接libg++或libstdc++。如果構(gòu)造失敗并且產(chǎn)生有關(guān)編譯器或鏈接器的錯誤,不能創(chuàng)建共享庫"libmysqlclient.so.#"("#"是一個版本號), 你可以通過為configure指定--disable-shared選項來解決此問題。在這種情況下,configure將不構(gòu)造一個共享libmysqlclient.so.#庫。
* 你可以設(shè)置MySQL對于非NULL的列不使用DEFAULT列值(即,不允許列是NULL)。這導(dǎo)致INSERT語句產(chǎn)生一個錯誤,除非你明確地為所有要求非NULL值的列指定值。為了禁止使用缺省值,這樣運(yùn)行configure:
# CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
* 缺省地,MySQL使用ISO-8859-1(Latin1)字符集。為了改變?nèi)笔≡O(shè)置,使用--with-charset選項目:
#./configure -- with-charset= gb2312
CHARSET可以是big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312 gbk、german1、hebrew、 hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7、win1251或win1251ukr之一。注意:如果你想要改變字符集,你必須在配置期間做make distclean!如果你想在服務(wù)器和客戶之間變換字符,你應(yīng)該看一下SET OPTION CHARACTER SET命令。如果你在創(chuàng)建了任何數(shù)據(jù)庫表之后改變字符集,你將必須對每個表運(yùn)行myisamchk -r -q,否則你的索引可能不正確地排序。(如果你安裝了MySQL,創(chuàng)建一些表,然后重新配置MySQL使用一個不同的字符集并且重新安裝它,這時就可能發(fā)生這種情況。)
* 為了配置MySQL帶有調(diào)試代碼,使用--with-debug選項:
#./configure --with-debug
這導(dǎo)致包含一個安全的內(nèi)存分配器,能發(fā)現(xiàn)一些錯誤和并提供關(guān)于正在發(fā)生的事情的輸出。
2.編譯Mysql:
配置完Mysql就可以進(jìn)行編譯了
#make
3.安裝Mysql:
#make install
這步系統(tǒng)會把mysql安裝到指定的位置,我們假設(shè)系統(tǒng)把mysql安裝到了/usr/local/下,到這就完成了Mysql系統(tǒng)的源碼方式配置、編譯和安裝了。
3.3.用RPM包進(jìn)行安裝
除了使用mysql的源碼安裝外,Mysql還提供了RPM方式
關(guān)鍵詞:MySQL,數(shù)據(jù)庫
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0