亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: luren04
打印 上一主題 下一主題

【申請(qǐng)加精】MySQL 5.1參考手冊(cè)  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
21 [報(bào)告]
發(fā)表于 2008-04-15 11:44 |只看該作者
2.3.6. 通過非安裝Zip文件安裝MySQL
想使用非自動(dòng)安裝包的用戶可以使用本節(jié)的指令手動(dòng)安裝MySQL。從Zip文檔安裝MySQL的過程為:

1.    將文檔提取到期望的安裝目錄中。

2.    創(chuàng)建一個(gè)選項(xiàng)文件。

3.    選擇MySQL服務(wù)器類型。

4.    啟動(dòng)MySQL服務(wù)器。

5.    使默認(rèn)用戶賬戶安全。

下面一節(jié)描述了該過程。

2.3.7. 提取安裝檔案文件
要想手動(dòng)安裝MySQL,其步驟為:

1.    如果你從以前的版本升級(jí),開始升級(jí)過程前請(qǐng)參閱2.3.15節(jié),“在Windows下升級(jí)MySQL”。

2.    如果你使用基于Windows NT的操作系統(tǒng),例如Windows NT、Windows 2000、Windows XP或Windows Server 2003,確保登錄的用戶名具有管理員權(quán)限。

3.    選擇安裝位置。傳統(tǒng)安裝中MySQL服務(wù)器安裝到C:\mysql,MySQL Installation Wizard(安裝幫助)將MySQL安裝到C:\Program Files\MySQL。如果你不想將MySQL安裝到C:\mysql,你必須在啟動(dòng)過程或在選項(xiàng)文件中指定安裝目錄的路徑。請(qǐng)參見2.3.8節(jié),“創(chuàng)建選項(xiàng)文件”。

4.    使用zip文件工具,將安裝文件提取到選定的安裝位置。使用某些工具,可以將文檔提取到選擇的安裝位置的文件夾中。在這種情況下,你可以將子文件夾中的內(nèi)容移動(dòng)到選擇的安裝位置。

2.3.8. 創(chuàng)建選項(xiàng)文件
如果想要指定運(yùn)行服務(wù)器的啟動(dòng)選項(xiàng),可以在命令行中指出或放到一個(gè)選項(xiàng)文件中。對(duì)于服務(wù)器每次啟動(dòng)都用到的選項(xiàng),你會(huì)發(fā)現(xiàn)使用選項(xiàng)文件來指定MySQL配置非常方便。特別是在以下環(huán)境中:
·         安裝或數(shù)據(jù)目錄位置不是默認(rèn)位置(C:\Program Files\MySQL\MySQL Server 5.1和C:\Program Files\MySQL\MySQL Server 5.1\data)。

·         需要調(diào)節(jié)服務(wù)器設(shè)定值。

檔MySQL服務(wù)器在Windows中啟動(dòng)時(shí),它從兩個(gè)文件中尋找選項(xiàng):Windows目錄中的my.ini文件和C:\my.cnf 文件。Windows目錄典型名稱為C:\WINDOWS或C:\WINNT?梢允褂孟旅娴拿顝腤INDIR環(huán)境變量值確定自己的確切位置:

C:\> echo %WINDIR%MySQL首先從my.ini文件中尋找選項(xiàng),然后從my.cnf文件中尋找。為了避免混淆,最好只使用一個(gè)文件。如果你的PC使用了一個(gè)引導(dǎo)加載器,其中C:不是引導(dǎo)盤,唯一的選則是使用my.ini文件。不管你使用哪個(gè)選項(xiàng)文件,必須為純文本文件。

還可以使用MySQL分發(fā)中的示例選項(xiàng)文件。在安裝目錄中查找以下文件:my-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf,你可以重新命名并復(fù)制到相應(yīng)位置用作基本配置文件。

可以用任何文本編輯器來創(chuàng)建并修改選項(xiàng)文件,例如記事本。例如,如果MySQL安裝在E:\mysql,數(shù)據(jù)目錄安裝在E:\mydata\data,你可以 創(chuàng)建含有[mysqld]部分的選項(xiàng)文件,指定basedir和datadir參數(shù)的值:

[mysqld]# set basedir to your installation pathbasedir=E:/mysql# set datadir to the location of your data directorydatadir=E:/mydata/data請(qǐng)注意在選項(xiàng)文件中使用正斜線兒不是反斜線指定Windows路徑名。如果使用反斜線,必須用雙反斜線:

[mysqld]# set basedir to your installation pathbasedir=E:\\mysql# set datadir to the location of your data directorydatadir=E:\\mydata\\data在Windows下,MySQL安裝器將數(shù)據(jù)目錄直接放到安裝MySQL的目錄下。如果你想要使用其它位置的數(shù)據(jù)目錄,應(yīng)當(dāng)將data目錄中的全部內(nèi)容復(fù)制到新的目錄下。例如,如果MySQL安裝到C:\Program Files\MySQL\MySQL Server 5.1中,數(shù)據(jù)目錄默認(rèn)在C:\Program Files\MySQL\MySQL Server 5.1\data。如果想要使用E:\mydata做為數(shù)據(jù)目錄,你必須做兩件事情:

1.    將整個(gè)data目錄和全部內(nèi)容從C:\Program Files\MySQL\MySQL Server 5.1\data移動(dòng)到E:\mydata。

2.    每次啟動(dòng)服務(wù)器時(shí),使用--datadir選項(xiàng)來指定新的數(shù)據(jù)目錄。

2.3.9. 選擇MySQL服務(wù)器類型
下面的表顯示了Windows下可用的MySQL 5.1服務(wù)器:

二進(jìn)制
描述

mysqld- debug
已經(jīng)編譯過,可以進(jìn)行完全調(diào)試和自動(dòng)內(nèi)存分配檢查,用于表InnoDB和BDB。

mysqld
優(yōu)化的二進(jìn)制,支持InnoDB。

mysqld-nt
優(yōu)化的二進(jìn)制,支持Windows NT,2000 XP,有命名管道。

mysqld-max
優(yōu)化的二進(jìn)制,支持InnoDB和BDB表。

mysqld-max-nt
同mysqld-max,但是已經(jīng)編譯過,支持命名管道。


已經(jīng)對(duì)所有前面的二進(jìn)制進(jìn)行了優(yōu)化以適用現(xiàn)代Intel處理器,但是應(yīng)當(dāng)工作在Intel i386-類或更高的處理器上。

所有Windows MySQL 5.1服務(wù)器支持?jǐn)?shù)據(jù)庫目錄符號(hào)鏈接。

MySQL支持所有Windows平臺(tái)的TCP/IP。mysqld-nt和mysql-max-nt服務(wù)器支持Windows NT、2000、XP和2003的命名管道。然而,在所有平臺(tái)下默認(rèn)使用TCP/IP。(在許多Windows配置中,命名管道比TCP/IP慢)。

命名管道在以下條件下使用:

·         如果使用--enable-named-pipe選項(xiàng)啟動(dòng)服務(wù)器,則啟用了命名管道。需要明確使用該選項(xiàng),因?yàn)楫?dāng)使用命名管道關(guān)閉MySQL服務(wù)器時(shí),某些用戶會(huì)遇到問題。

·         只有mysqld-nt或mysqld-max-nt服務(wù)器,并且服務(wù)器運(yùn)行在支持命名管道的Windows版本(NT、2000、XP、2003),才能夠使用命名管道連接。

·         這些服務(wù)器可以運(yùn)行在Windows 98 或Me中,但是必須安裝TCP/IP協(xié)議;此時(shí)不可以使用命名管道連接。

·         這些服務(wù)器不能在Windows 95中運(yùn)行。

注釋:參考手冊(cè)中的大多數(shù)例子使用mysqld做為服務(wù)器名。如果你選擇使用不同的服務(wù)器,例如mysqld-nt,則在相應(yīng)例子中的命令中進(jìn)行相應(yīng)的替換。

論壇徽章:
0
22 [報(bào)告]
發(fā)表于 2008-04-15 11:44 |只看該作者
2.3.10. 首次啟動(dòng)服務(wù)器
本節(jié)中的信息主要適用選擇NoinstallMySQL安裝版本,或想要手動(dòng)配置和測試MySQL而不用GUI工具的情況。

在Windows 95,98,或Me中,MySQL客戶端總使用TCP/IP連接服務(wù)器。(這樣允許網(wǎng)絡(luò)中的所有機(jī)器連接MySQL服務(wù)器)。因此,在啟動(dòng)MySQL之前,你必須確保機(jī)器支持TCP/IP。可以從Windows CD-ROM中找到TCP/IP。

請(qǐng)注意如果使用舊版本的Windows 95(例如,OSR2),很可能你使用了舊的Winsock包;MySQL需要Winsock 2?梢詮http://www.microsoft.com/獲得最新的Winsock。Windows 98包含新的Winsock 2庫,因此不需要更新庫。

在基于NT的系統(tǒng)中,例如 Windows NT、2000、XP或2003,客戶端可以有兩個(gè)選擇?梢允褂肨CP/IP,如果服務(wù)器支持命名管道連接,也可以使用命名管道。要想使MySQL使用Windows NT 4中的TCP/IP,你必須安裝服務(wù)pack 3(或更新的補(bǔ)丁)。

如果用--shared-memory選項(xiàng)啟動(dòng),Windows版MySQL還支持共享內(nèi)存連接?蛻舳丝梢酝ㄟ^--protocol=memory選項(xiàng)通過共享內(nèi)存進(jìn)行連接。

關(guān)于運(yùn)行哪個(gè)服務(wù)器二進(jìn)制的信息,參見2.3.9節(jié),“選擇MySQL服務(wù)器類型”。

本節(jié)對(duì)MySQL服務(wù)器啟動(dòng)進(jìn)行了概述。下面章節(jié)詳細(xì)說明了從命令行或Windows 服務(wù)啟動(dòng)MySQL服務(wù)器的具體信息。

這些章節(jié)的例子假定MySQL安裝到默認(rèn)位置C:\Program Files\MySQL\MySQL Server 5.1。如果你將MySQL安裝到了其它位置,則要更改例子中的路徑名。

在控制臺(tái)窗口(或“DOS window”)中,最好根據(jù)命令提示進(jìn)行測試。這樣可以讓服務(wù)器在window中容易看見的地方顯示狀態(tài)消息。如果配置出現(xiàn)錯(cuò)誤,通過這些消息,可以更容易地識(shí)別并修復(fù)問題。

要想啟動(dòng)服務(wù)器,輸入命令:

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --console支持InnoDB的服務(wù)器啟動(dòng)時(shí),你應(yīng)當(dāng)能看見下面的消息:

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:InnoDB: a new database to be created!InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200InnoDB: Database physically writes the file full: wait...InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be createdInnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be createdInnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be createdInnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280InnoDB: Doublewrite buffer not found: creating newInnoDB: Doublewrite buffer createdInnoDB: creating foreign key constraint system tablesInnoDB: foreign key constraint system tables created011024 10:58:25  InnoDB: Started服務(wù)器完成啟動(dòng)序列后,你應(yīng)當(dāng)能看見下述內(nèi)容,表示服務(wù)器準(zhǔn)備好,可以進(jìn)行客戶端連接:

mysqld: ready for connectionsVersion: '5.1.2-alpha'  socket: ''  port: 3306服務(wù)器繼續(xù)向控制臺(tái)寫入診斷輸出。你可以打開新的控制臺(tái)窗口運(yùn)行客戶端程序。

如果省略--console選項(xiàng),服務(wù)器向數(shù)據(jù)目錄(默認(rèn)為C:\Program Files\MySQL\MySQL Server 5.1\data)中的錯(cuò)誤日志寫入診斷輸出。錯(cuò)誤日志文件的擴(kuò)展名為.err。

注釋:MySQL授權(quán)表中的賬戶一開始沒有密碼。服務(wù)器啟動(dòng)后,你應(yīng)當(dāng)根據(jù)2.9節(jié),“安裝后的設(shè)置和測試”中的說明設(shè)置密碼。

2.3.11. 從Windows命令行啟動(dòng)MySQL
可以從命令行手動(dòng)啟動(dòng)MySQL服務(wù)器?梢栽谌魏伟姹镜腤indows中實(shí)現(xiàn)。

要想從命令行啟動(dòng)mysqld服務(wù)器,你應(yīng)當(dāng)啟動(dòng)控制臺(tái)窗口(或“DOS window”)并輸入命令:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld根據(jù)系統(tǒng)中MySQL安裝位置的不同,前面的例子中使用的路徑也不同。

在非NT版本的Windows中,在后臺(tái)啟動(dòng)mysqld。也就是,服務(wù)器啟動(dòng)后,你應(yīng)當(dāng)可以看見后面的命令提示。如果你用該方法在Windows NT、2000、XP或2003中啟動(dòng)服務(wù)器,服務(wù)器則在前臺(tái)運(yùn)行,在服務(wù)器退出前,不會(huì)出現(xiàn)命令提示。因此,當(dāng)服務(wù)器運(yùn)行時(shí),應(yīng)當(dāng)打開另一個(gè)控制臺(tái)窗口來運(yùn)行客戶端程序。

下述命令可以停止MySQL服務(wù)器:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown該命令調(diào)用MySQL管理工具mysqladmin連接服務(wù)器并告知它關(guān)閉服務(wù)。該命令使用MySQL root用戶連接,這是MySQL權(quán)限系統(tǒng)中的默認(rèn)管理賬戶。請(qǐng)注意MySQL權(quán)限系統(tǒng)中的用戶完全獨(dú)立于Windows下的登錄用戶。

如果mysqld不能啟動(dòng),檢查錯(cuò)誤日志看看服務(wù)器是否寫入了顯示問題原因的任何消息。錯(cuò)誤日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目錄中。是帶后綴.err的文件。還可以嘗試將服務(wù)器啟動(dòng)為mysqld --console;此時(shí),可以從窗口中獲得一些有用的信息,可以幫助解決問題。

最后選項(xiàng)是用--standalone --debug啟動(dòng)mysqld。此時(shí),mysqld 寫入日志文件C:\mysqld.trace,應(yīng)當(dāng)包含mysqld不啟動(dòng)的原因。請(qǐng)參見E.1.2節(jié),“創(chuàng)建跟蹤文件”。

使用mysqld --verbose --help顯示mysqld的所有選項(xiàng)。

2.3.12. 以Windows服務(wù)方式啟動(dòng)MySQL
在NT家族 (Windows NT,2000,XP,2003)中,建議將MySQL安裝為Windows服務(wù),當(dāng)Windows啟動(dòng)、停止時(shí),MySQL也自動(dòng)啟動(dòng)、停止。還可以從命令行使用NET命令,或使用圖形Services工具來控制AMySQL服務(wù)器。

在Windows控制面板(Windows 2000,XP和Server 2003的管理工具下面)中可以看見Services工具(Windows Service Control Manager)。建議從命令行安裝活卸載服務(wù)器時(shí)關(guān)閉Services工具。這樣可以防止許多錯(cuò)誤。

安裝MySQL Windows服務(wù)之前,應(yīng)當(dāng)使用下面的命令先停止當(dāng)前正運(yùn)行的服務(wù)器:

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown注釋:如果MySQL root用戶賬戶有密碼,你需要調(diào)用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown并根據(jù)提示輸入密碼。

該命令調(diào)用MySQL管理工具mysqladmin,連接服務(wù)器并告知它關(guān)閉服務(wù)。該命令使用MySQL root用戶連接,這是MySQL權(quán)限系統(tǒng)中的默認(rèn)管理賬戶。請(qǐng)注意MySQL權(quán)限系統(tǒng)中的用戶完全獨(dú)立于Windows下的登錄用戶。

使用該命令安裝服務(wù)器

C:\> mysqld --install如果只使用服務(wù)器名安裝mysqld時(shí)有問題,嘗試使用全路徑名來安裝。例如:

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install你還可以將MySQL bin目錄的路徑加到Windows系統(tǒng)PATH環(huán)境變量中:

·         右擊Windows桌面上的My Computer(我的計(jì)算機(jī))圖標(biāo),選擇Properties(屬性)。

·         然后從出現(xiàn)的System Properties菜單中選擇Advanced(高級(jí))標(biāo)簽,然后點(diǎn)擊Environment Variables(環(huán)境變量)按鈕。

·         選擇System Variables(系統(tǒng)變量)下面的Path(路徑),然后點(diǎn)擊Edit(編輯)按鈕。將彈出Edit System Variable(編輯系統(tǒng)變量)對(duì)話框。

·         將光標(biāo)放到標(biāo)記Variable Value(變量值)處的文本的后面。(使用End鍵確保光標(biāo)位于文本的最后)。然后輸入MySQL bin目錄   的完整路徑(例如,C:\Program Files\MySQL\MySQL Server 5.1\bin),請(qǐng)注意應(yīng)使用分號(hào)將該路徑與該域內(nèi)的其它值隔離開。一次關(guān)閉該對(duì)話框和各個(gè)對(duì)話框,點(diǎn)擊OK直到打開的所有對(duì)話框被關(guān)閉。你現(xiàn)在可以在DOS提示符下從系統(tǒng)的任何目錄輸入MySQL可執(zhí)行程序名來調(diào)用MySQL可執(zhí)行程序,而不必提供路徑名。包括服務(wù)器、MySQL客戶端和所有MySQL命令行實(shí)用程序,例如mysqladmin和mysqldump。

·         請(qǐng)注意在同一個(gè)機(jī)器上運(yùn)行多個(gè)MySQL服務(wù)器時(shí),不需要在Windows PATH中加入MySQL bin目錄。

警告:編輯系統(tǒng)PATH時(shí)必須特別注意;意外刪除或修改已有路徑值會(huì)造成系統(tǒng)故障甚至癱瘓。

服務(wù)安裝命令不會(huì)啟動(dòng)服務(wù)器。在本節(jié)后面將給出相關(guān)指令。

安裝服務(wù)時(shí),可以使用MySQL 5.1中的下面的參數(shù):

·         可以直接在--install選項(xiàng)后面指定服務(wù)名。默認(rèn)服務(wù)名是MySQL。

·         如果給出了服務(wù)名,后面可以跟一個(gè)選項(xiàng)。一般情況,應(yīng)當(dāng)為defaults-file=file_name,指定選項(xiàng)文件的名稱,服務(wù)器啟動(dòng)時(shí)應(yīng)當(dāng)從中讀取選項(xiàng)。

可以使用單個(gè)選項(xiàng)代替--defaults-file,但是不提倡這樣做。--defaults-file更加靈活一些,因?yàn)槟憧梢詫⒍鄠(gè)服務(wù)器啟動(dòng)選項(xiàng)放入命名的選項(xiàng)文件中。

·         可以在服務(wù)名后面指定一個(gè)--local-service選項(xiàng)。這樣服務(wù)器運(yùn)行時(shí)使用LocalService Windows賬戶,只具有有限的系統(tǒng)權(quán)限。該賬戶只適用于Windows XP或更新版本。如果服務(wù)名后面同時(shí)跟有--defaults-file和--local-service,二者可以按任何順序排放。

對(duì)于Windows MySQL服務(wù)器,根據(jù)下面規(guī)則確定服務(wù)器使用的服務(wù)名和選項(xiàng)文件:

·         如果在服務(wù)安裝命令中,沒有在--install選項(xiàng)后面指定了服務(wù)名或使用默認(rèn)服務(wù)名(MySQL),服務(wù)器則使用MySQL服務(wù)名并從標(biāo)準(zhǔn)選項(xiàng)文件的[mysqld]組讀取選項(xiàng)。

·         如果在服務(wù)安裝命令中,在--install選項(xiàng)后面指定的服務(wù)名不是默認(rèn)服務(wù)名(MySQL)。則從具有相同服務(wù)名的組中讀取選項(xiàng),并從標(biāo)準(zhǔn)選項(xiàng)文件讀取選項(xiàng)。

服務(wù)器還從標(biāo)準(zhǔn)選項(xiàng)文件的[mysqld]組讀取選項(xiàng)。你可以使用[mysqld]組中的選項(xiàng)用于所有MySQL 服務(wù),還可以使用具有相同服務(wù)名的組,用于該服務(wù)名所對(duì)應(yīng)的服務(wù)器。

·         如果在服務(wù)安裝命令中,在服務(wù)名后面指定了--defaults-file選項(xiàng),服務(wù)器只從命名文件的[mysqld]組中讀取選項(xiàng),忽略標(biāo)準(zhǔn)選項(xiàng)文件。

對(duì)于更復(fù)雜的例子可以考慮使用命令:

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install MySQL --defaults-file=C:\my-opts.cnf該命令中,--install選項(xiàng)后面給出了默認(rèn)服務(wù)名(MySQL)。如果未給出--defaults-file選項(xiàng),該命令可以讓服務(wù)器從標(biāo)準(zhǔn)選項(xiàng)文件的[mysqld]組中讀數(shù)。由于提供了--defaults-file選項(xiàng),服務(wù)器只從命名文件的[mysqld]組讀取選項(xiàng)。

還可以在啟動(dòng)MySQL服務(wù)之前,在Windows Services工具中指定啟動(dòng)參數(shù)選項(xiàng)。

MySQL服務(wù)器安裝為服務(wù)后,Windows啟動(dòng)時(shí)自動(dòng)啟動(dòng)服務(wù)。還可以從Services工具直接啟動(dòng)服務(wù),或使用命令NET START MySQL。NET命令忽略大小寫。

做為服務(wù)運(yùn)行時(shí),mysqld不能訪問控制臺(tái)窗口,因此看不見任何消息。如果mysqld未啟動(dòng),檢查錯(cuò)誤日志看看服務(wù)器是否寫入了顯示問題原因的任何消息。錯(cuò)誤日志位于MySQL數(shù)據(jù)目錄中(例如,C:\Program Files\MySQL\MySQL Server 5.1\data),是帶后綴.err的文件。

如果MySQL服務(wù)器安裝為服務(wù),并且服務(wù)正運(yùn)行,Windows關(guān)閉時(shí)自動(dòng)停止服務(wù)。還可以通過Services工具、NET STOP MySQL命令或 mysqladmin shutdown命令手動(dòng)停止服務(wù)器。

如果不想在引導(dǎo)過程中自動(dòng)啟動(dòng)服務(wù),還可以將服務(wù)設(shè)置為手動(dòng)啟動(dòng)模式。實(shí)現(xiàn)的方法是使用--install-manual選項(xiàng)而非--install選項(xiàng):

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install-manual要想卸載服務(wù)器,如果服務(wù)正運(yùn)行則應(yīng)首先使用命令NET STOP MYSQL停止服務(wù)。然后使用--remove選項(xiàng)卸載服務(wù):

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --remove如果mysqld不是服務(wù),可以從命令行啟動(dòng)它。詳細(xì)說明參見2.3.11節(jié),“從Windows命令行啟動(dòng)MySQL”。

如果在安裝過程中遇到問題,請(qǐng)參閱2.3.14節(jié),“在Windows環(huán)境下對(duì)MySQL安裝的故障診斷與排除”。

2.3.13. 測試MySQL安裝
可以通過以下命令測試MySQL服務(wù)器是否工作:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshowC:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshow -u root mysqlC:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin version status procC:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql test如果mysqld對(duì)客戶端程序TCP/IP連接的響應(yīng)較慢,可能是DNS問題。此時(shí),使用--skip-name-resolve選項(xiàng)啟動(dòng)mysqld,在MySQL授權(quán)表的Host列只使用localhost和IP號(hào)。

可以通過--pipe或--protocol=PIPE選項(xiàng)強(qiáng)制MySQL客戶端使用命名管道連接代替TCP/IP連接,或指定.(階段)做為主機(jī)名。使用--socket選項(xiàng)指定管道名。

論壇徽章:
0
23 [報(bào)告]
發(fā)表于 2008-04-15 11:45 |只看該作者
2.3.14. 在Windows環(huán)境下對(duì)MySQL安裝的故障診斷與排除
首次安裝、運(yùn)行MySQL時(shí),你可能會(huì)遇到一些錯(cuò)誤,使MySQL服務(wù)器不能啟動(dòng)。本節(jié)的目的是幫助你診斷并糾正這些錯(cuò)誤。

解決服務(wù)器問題時(shí)你的第一資料是錯(cuò)誤日志。MySQL服務(wù)器使用錯(cuò)誤日志來記錄服務(wù)器不能啟動(dòng)的信息。錯(cuò)誤日志位于my.ini文件指定的數(shù)據(jù)目錄中。默認(rèn)數(shù)據(jù)目錄位于C:\Program Files\MySQL\MySQL Server 5.1\dat。請(qǐng)參見5.11.1節(jié),“錯(cuò)誤日志”。

另一個(gè)錯(cuò)誤相關(guān)信息源是MySQL服務(wù)啟動(dòng)時(shí)控制臺(tái)上顯示的消息。將mysqld安裝為服務(wù)后,從命令行通過NET START mysql命令來查看MySQL服務(wù)啟動(dòng)相關(guān)的錯(cuò)誤消息。請(qǐng)參見2.3.12節(jié),“以Windows服務(wù)方式啟動(dòng)MySQL”。

下面距離說明了首次安裝并啟動(dòng)MySQL服務(wù)時(shí)會(huì)遇到的最常見的錯(cuò)誤消息:

·                System error 1067 has occurred.·                Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist·         當(dāng)MySQL服務(wù)器找不到MySQL權(quán)限數(shù)據(jù)庫或關(guān)鍵文件時(shí)會(huì)出現(xiàn)這些消息。當(dāng)MySQL基或數(shù)據(jù)目錄沒有安裝在默認(rèn)位置(C:\mysql和 C:\Program Files\MySQL\MySQL Server 5.1\data),而是安裝到其它位置時(shí)通常會(huì)遇到該問題。

發(fā)生該問題的一種情況是對(duì)MySQL進(jìn)行升級(jí)或安裝到了新位置,但是沒有對(duì)配置文件進(jìn)行更新以對(duì)應(yīng)新的安裝位置。此外還可能是新舊配置文件沖突,當(dāng)升級(jí)MySQL時(shí),一定要?jiǎng)h除或重新命名舊的配置文件。

如果你沒有將MySQL安裝到C:\Program Files\MySQL\MySQL Server 5.1目錄下,而是安裝到了其它目錄下,你需要通過使用配置(my.ini)文件讓MySQL服務(wù)器知道安裝目錄。my.ini文件應(yīng)位于Windows目錄下,典型為C:\WINNT或C:\WINDOWS?梢栽诿钐崾痉螺斎胂旅娴拿顝腤INDIR環(huán)境變量值中確定確切位置:

C:\> echo %WINDIR%可以通過文本編輯器(例如記事本)來創(chuàng)建并修改選項(xiàng)文件。例如,如果MySQL安裝在E:\mysql下,數(shù)據(jù)目錄在D:\MySQLdata,你可以創(chuàng)建選項(xiàng)文件并設(shè)置[mysqld]來指定basedir和datadir參數(shù)的值:

[mysqld]# set basedir to your installation pathbasedir=E:/mysql# set datadir to the location of your data directorydatadir=D:/MySQLdata請(qǐng)注意應(yīng)使用(正)斜線而不是反斜線在選項(xiàng)文件中指定Windows路徑名。如果使用反斜線,則必須使用雙斜線:

[mysqld]# set basedir to your installation pathbasedir=C:\\Program Files\\MySQL\\MySQL Server 5.1# set datadir to the location of your data directorydatadir=D:\\MySQLdata如果在MySQL配置文件中更改datadir值,在重新啟動(dòng)MySQL服務(wù)器之前,必須移動(dòng)已有MySQL數(shù)據(jù)目錄中的內(nèi)容。

參見2.3.8節(jié),“創(chuàng)建選項(xiàng)文件”。

·                Error: Cannot create Windows service for MySql. Error: 0·         當(dāng)你沒有事先停止并卸載已有MySQL服務(wù),并且使用MySQL Configuration Wizard(配置向?qū)В┲匦掳惭b或升級(jí)MySQL時(shí),會(huì)遇到該問題。發(fā)生的原因是,當(dāng)配置向?qū)г噲D安裝服務(wù)時(shí),它發(fā)現(xiàn)已經(jīng)有一個(gè)同名的服務(wù)。

解決該問題的一個(gè)方案是使用配置向?qū)r(shí)選擇mysql之外的其它服務(wù)名。這樣可以正確安裝新服務(wù),但保留了原來的服務(wù)。但是這樣不好,最好是卸掉不再使用的舊服務(wù)。

要想永遠(yuǎn)卸掉舊的MySQL服務(wù),通過管理權(quán)限用戶在命令行執(zhí)行下面的命令:

C:\>sc delete mysql[SC] DeleteService SUCCESS如果Windows版本中沒有sc工具,可以從 http://www.microsoft.com/windows ... isting/delsrv-o.asp 下載delsrv工具并使用delsrvMySQL語法。

2.3.15. 在Windows下升級(jí)MySQL
本節(jié)列出了在Windows中升級(jí)MySQL應(yīng)采取的步驟。

1.    進(jìn)行升級(jí)前你應(yīng)先備份當(dāng)前的MySQL安裝。請(qǐng)參見5.9.1節(jié),“數(shù)據(jù)庫備份”。

2.    從http://dev.mysql.com/downloads/下載最新Windows版MySQL。

3.    升級(jí)MySQL前,必須停止服務(wù)器。

如果服務(wù)器安裝為服務(wù),必須在命令提示符下在命令行中用下面的命令停止服務(wù):

C:\> NET STOP MYSQL如果MySQL服務(wù)器不是服務(wù),使用下面的命令停止服務(wù)器:

C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown4.    當(dāng)從以前至的4.1.5版本升級(jí)到MySQL 5.1時(shí),或從Zip文件安裝的MySQL升級(jí)到MySQL Installation Wizard(安裝幫助)安裝的MySQL時(shí),你必須手動(dòng)卸載前面安裝的MySQL服務(wù)。

要想卸載MySQL服務(wù),使用下面的命令:

C:\> C:\mysql\bin\mysqld --remove如果你不想卸載已有的服務(wù),MySQL Installation Wizard(安裝幫助)則不會(huì)正確安裝新的MySQL服務(wù)。

5.    如果你使用MySQL Installation Wizard(安裝幫助),按照2.3.4節(jié),“使用MySQL安裝向?qū)А钡拿枋鰜韱?dòng)幫助。

6.    如果用Zip文件安裝MySQL,應(yīng)提取文件。你可以覆蓋已有的MySQL安裝(通常位于C:\mysql),或?qū)⑺惭b到其它目錄,例如 C:\mysql4。建議覆蓋原有的安裝。

7.    重新啟動(dòng)服務(wù)器。如果你運(yùn)行MySQL服務(wù),則使用NET START MySQL,還可以直接調(diào)用mysqld。

8.    關(guān)于在Windows之外的操作系統(tǒng)升級(jí)MySQL的詳細(xì)信息,請(qǐng)參閱2.10節(jié),“升級(jí)MySQL”。

9.    如果遇到錯(cuò)誤,參見 2.3.14節(jié),“在Windows環(huán)境下對(duì)MySQL安裝的故障診斷與排除”。

2.3.16. Windows版MySQL同Unix版MySQL對(duì)比
已經(jīng)證明,Windows版MySQL很穩(wěn)定。Windows版MySQL的功能與相應(yīng)的Unix版相同,只有以下例外:

·         Windows 95和線程

Windows 95創(chuàng)建一個(gè)線程時(shí)大約需要200字節(jié)的主內(nèi)存。MySQL的每個(gè)連接都會(huì)創(chuàng)建一個(gè)新線程,因此如果你的服務(wù)器正處理許多連接,你不應(yīng)當(dāng)在Windows 95中運(yùn)行mysqld。

·         有限的端口數(shù)目

Windows系統(tǒng)有大約4,000個(gè)端口供客戶端連接,某個(gè)端口的連接關(guān)閉后,在能夠重新利用該端口前,需要2至4分鐘。在客戶端頻繁連接并從服務(wù)器上斷開時(shí),在可以重新使用關(guān)閉的端口前,有可能用完了所有可用的端口。如果發(fā)生這種情況,MySQL服務(wù)器不會(huì)響應(yīng),即使它仍在運(yùn)行。請(qǐng)注意機(jī)器上運(yùn)行的其它應(yīng)用程序也可以使用端口,此時(shí)可供MySQL使用的端口數(shù)要少。

詳細(xì)信息參見http://support.microsoft.com/default.aspx?scid=kb;en-us;196271 。

·         并行讀

MySQL依靠pread()和pwrite()系統(tǒng)調(diào)用來同時(shí)使用INSERT和SELECT。目前我們使用互斥來競爭pread()和pwrite()。我們將來想用虛擬接口替換文件級(jí)接口,因此要想更快,我們可以在NT、2000和XP上使用readfile()/writefile()接口。目前MySQL 5.1可以打開的文件的限制數(shù)目為2,048,意味著在Windows NT,2000,XP和2003上可以運(yùn)行的并行線程不如Unix上多。

·         阻塞讀

MySQL為每個(gè)連接使用阻塞讀取,如果啟用了命名管道連接,其含義如下:

o        連接不會(huì)在8小時(shí)后自動(dòng)斷開,而在Unix版MySQL中會(huì)發(fā)生。

o        如果連接被掛起,不殺掉MySQL則不會(huì)將其中斷。

o        mysqladmin kill不會(huì)殺掉睡眠中的連接。

o        只要有睡眠連接,mysqladmin shutdown不會(huì)中斷。

我們計(jì)劃在將來修復(fù)該問題。

·         ALTER TABLE

執(zhí)行ALTER TABLE語句時(shí),將該表鎖定不讓其它線程使用。在Windows中,你不能刪除正被另一個(gè)線程使用的文件。在將來,我們會(huì)找出辦法解決該問題。

·         DROP TABLE

在Windows中對(duì)一個(gè)被MERGE表應(yīng)用的表執(zhí)行DROP TABLE不會(huì)實(shí)現(xiàn),因?yàn)镸ERGE處理器將表從MySQL上層映射隱藏起來。由于Windows不允許刪除打開的文件,必須在刪除表之前首先清空所有MERGE表(使用FLUSH TABLES)或刪掉MERGE表。

·         DATA DIRECTORY and INDEX DIRECTORY

在Windows中將忽略DATA DIRECTORY和INDEX DIRECTORY選項(xiàng),因?yàn)閃indows不支持符號(hào)連接。在具有非功能realpath()調(diào)用的系統(tǒng)中,這些選項(xiàng)也被忽略。

·         DROP DATABASE

你不能刪掉正被線程使用的數(shù)據(jù)庫。

·         從Task Manager(任務(wù)管理器)殺掉MySQL

你不能從Task Manager(任務(wù)管理求)或使用Windows 95的shutdown工具來殺掉MySQL。你必須通過mysqladmin shutdown停止它。

·         大小寫名

由于Windows對(duì)文件名大小寫不敏感。因此在Windows中MySQL數(shù)據(jù)庫名和表名對(duì)大小寫也不敏感。唯一的限制是在同一個(gè)語句中,必須同時(shí)使用大寫或小寫指定數(shù)據(jù)庫名和表名。請(qǐng)參見9.2.2節(jié),“識(shí)別符大小寫敏感性”。

·         ‘\’路徑名間隔符

Windows中的路徑名用‘\’符間隔開,在MySQL中還是轉(zhuǎn)義字符。如果你使用LOAD DATA INFILE或SELECT ... INTO OUTFILE,用‘/’符使用Unix-類文件名:

mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;你還可以使用雙‘\’符:

mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;·         管道問題。

管道不能在Windows命令行提示符下可靠地工作。如果管道包括字符^Z/CHAR(24),Windows認(rèn)為遇到了文件末尾并中斷程序。

這主要是按照如下所示使用二進(jìn)制日志的主要問題:

C:\>mysqlbinlog binary-log-name | mysql --user=root如果使用日志時(shí)出現(xiàn)問題,懷疑是由于^Z / CHAR(24)字符,你可以使用下面的程序:

C:\> mysqlbinlog binary-log-file --result-file=/tmp/bin.sqlC:\> mysql --user=root --execute "source /tmp/bin.sql"后面的命令還可以用來可靠讀取任何包含二進(jìn)制數(shù)據(jù)的SQL文件。

·         Access denied for user錯(cuò)誤

如果你試圖運(yùn)行MySQL客戶端程序來連接同一機(jī)器上運(yùn)行的服務(wù)器,但是遇到錯(cuò)誤Access denied for user 'some-user'@'unknown' to database 'mysql',這意味著MySQL不能正確識(shí)別你的主機(jī)名。

要解決該問題,你應(yīng)當(dāng)創(chuàng)建一個(gè)名為\windows\hosts包含下面信息的文件:

127.0.0.1       localhost這兒有一些公開問題,提供給想要幫助我們改進(jìn)Windows中的MySQL的人們:

·         增加宏來使用Windows提供的更快的線程安全增/減方法。

論壇徽章:
0
24 [報(bào)告]
發(fā)表于 2008-04-15 11:45 |只看該作者

2.4. 在Linux下安裝MySQL

建議在Linux中使用RPM包來安裝MySQL。MySQL RPM目前已經(jīng)嵌入到SuSE Linux 7.3系統(tǒng)中,但是應(yīng)當(dāng)能在大多數(shù)支持rpm和使用glibc的Linux版本中工作。要想獲得RPM軟件包,參見2.1.3節(jié),“怎樣獲得MySQL”。

MySQL AB不提供與具體平臺(tái)相關(guān)的RPM;具體平臺(tái)相關(guān)的RPM和通用RPM之間的區(qū)別是具體平臺(tái)相關(guān)RPM為目標(biāo)平臺(tái)而構(gòu)建,為動(dòng)態(tài)連接。而通用RPM與Linux線程之間是靜態(tài)連接。

注釋:通常由其它供應(yīng)商提供MySQL的RPM分發(fā)版。其特征和功能與MySQL AB所構(gòu)建的不同,該手冊(cè)中的指令不一定適合安裝其它供應(yīng)商提供的MySQL的RPM分發(fā)版。此時(shí)應(yīng)咨詢供應(yīng)商的說明。

如果RPM文件有問題(例如,如果你收到錯(cuò)誤“Sorry, the host 'xxxx' could not be looked up”),參見2.12.1.2節(jié),“Linux二進(jìn)制分發(fā)版說明”。

在大多數(shù)情況,你只需要安裝MySQL-server和MySQL-client軟件包來安裝MySQL。在標(biāo)準(zhǔn)安裝中不需要其它的包。如果你想要運(yùn)行含更多功能的MySQL-Max服務(wù)器,還應(yīng)當(dāng)安裝MySQL-Max RPM。必須先安裝M MySQL-server RPM再安裝該模塊。請(qǐng)參見5.1.2節(jié),“mysqld-max擴(kuò)展MySQL服務(wù)器”。

如果安裝MySQL軟件包時(shí)出現(xiàn)從屬錯(cuò)誤(例如,“error: removing these packages would break dependencies: libmysqlclient.so.10 is needed by ..”),你還應(yīng)當(dāng)安裝包MySQL-shared-compat,其中包括兩個(gè)向后兼容的共享庫(MySQL 4.0為libmysqlclient.so.12,MySQL 3.23為libmysqlclient.so.10)。

許多Linux分發(fā)版包含了MySQL 3.23,通常動(dòng)態(tài)連接應(yīng)用程序以節(jié)省硬盤空間。如果這些共享庫在單獨(dú)的包內(nèi)(例如,MySQL-shared),只需要安裝這些包并升級(jí)MySQL服務(wù)器和客戶端軟件包(為靜態(tài)連接,不依賴共享庫)。對(duì)于包含與MySQL服務(wù)器相同軟件包中的共享庫的分發(fā)版(例如,Red Hat Linux),你可以安裝3.23 MySQL-shared RPM,或使用MySQL-shared-compat包。

可以使用以下RPM包:

·         MySQL-server-VERSION.i386.rpm

MySQL服務(wù)器。你需要該選項(xiàng),除非你只想連接運(yùn)行在另一臺(tái)機(jī)器上的MySQL服務(wù)器。 注釋:在MySQL 4.0.10之前,服務(wù)器RPM文件被稱為MySQL-VERSION.i386.rpm。也就是說,名稱中不含有-server。

·         MySQL-Max-VERSION.i386.rpm

MySQL-Max服務(wù)器。該服務(wù)器具有其它功能,這是MySQL-server RPM不具備的。你必須首先安裝MySQL-server RPM,因?yàn)镸ySQL-Max RPM依賴于它。

·         MySQL-client-VERSION.i386.rpm

標(biāo)準(zhǔn)MySQL客戶端程序。你可能總是要安裝該軟件包。

·         MySQL-bench-VERSION.i386.rpm

測試和基準(zhǔn)。需要Perl和DBD::mysql模塊。

·         MySQL-devel-VERSION.i386.rpm

庫和包含文件,如果你想要編譯其它MySQL客戶端,例如Perl模塊,則需要。

·         MySQL-shared-VERSION.i386.rpm

該軟件包包含某些語言和應(yīng)用程序需要?jiǎng)討B(tài)裝載的共享庫(libmysqlclient.so*),使用MySQL。

·         MySQL-shared-compat-VERSION.i386.rpm

該軟件包包括MySQL 3.23和MySQL 4.0的共享庫。如果你安裝了應(yīng)用程序動(dòng)態(tài)連接MySQL 3.23,但是你想要升級(jí)到MySQL 4.0而不想打破庫的從屬關(guān)系,則安裝該軟件包而不要安裝MySQL-shared。從MySQL 4.0.13起包含該安裝軟件包。

·         MySQL-embedded-VERSION.i386.rpm

嵌入式MySQL服務(wù)器庫(從MySQL 4.0起)。

·         MySQL-VERSION.src.rpm

包含以前所有軟件包的源碼?捎脕碓谄渌軜(gòu)上重建RPM(例如,Alpha或SPARC)。

要想看到RPM軟件包內(nèi)的所有文件(例如,MySQL-server RPM),運(yùn)行:

shell> rpm -qpl MySQL-server-VERSION.i386.rpm要想執(zhí)行標(biāo)準(zhǔn)最小安裝,運(yùn)行:

shell> rpm -i MySQL-server-VERSION.i386.rpmshell> rpm -i MySQL-client-VERSION.i386.rpm要想只安裝客戶端軟件包,運(yùn)行:

shell> rpm -i MySQL-client-VERSION.i386.rpmRPM提供在安裝軟件包前驗(yàn)證其完整性和真實(shí)性的功能。如果你要想了解關(guān)于該功能的更多信息,參見2.1.4節(jié),“通過MD5校驗(yàn)和或GnuPG驗(yàn)證軟件包的完整性”。

服務(wù)器RPM將數(shù)據(jù)放入/var/lib/mysql目錄。RPM還為mysql用戶創(chuàng)建登錄賬戶(如果還沒有),用來運(yùn)行MySQL服務(wù)器,并在/etc/init.d/創(chuàng)建相應(yīng)條目,以便在引導(dǎo)時(shí)自動(dòng)啟動(dòng)服務(wù)器。(這意味著如果你已經(jīng)安裝并且已經(jīng)更改啟動(dòng)腳本,你可能要復(fù)制腳本,以便你安裝新RPM時(shí) 不會(huì)丟掉腳本)。關(guān)于系統(tǒng)啟動(dòng)時(shí)如何自動(dòng)啟動(dòng)MySQL的詳細(xì)信息,參見 2.9.2.2節(jié),“自動(dòng)啟動(dòng)和停止MySQL”。

如果想要在舊的不支持/etc/init.d(直接或通過符號(hào)連接)初始化腳本的Linux分發(fā)版中安裝MySQL RPM,你應(yīng)當(dāng)創(chuàng)建一個(gè)指向初始化腳本實(shí)際安裝的位置的符號(hào)連接。例如,如果安裝位置為/etc/rc.d/init.d,安裝RPM前使用這些命令創(chuàng)建/etc/init.d,作為指向該位置的符號(hào)連接:

shell> cd /etcshell> ln -s rc.d/init.d。目前主要Linux分發(fā)版應(yīng)當(dāng)支持使用/etc/init.d的新目錄布局,因?yàn)樾枰狶SB(Linux標(biāo)準(zhǔn)基)兼容性。

如果你安裝的RPM文件包括MySQL-server,安裝后MySQLd服務(wù)器應(yīng)當(dāng)能啟動(dòng)并運(yùn)行。你應(yīng)當(dāng)能使用MySQL啟動(dòng)。

如果出現(xiàn)問題,可以從二進(jìn)制安裝部分找到詳細(xì)信息。2.7節(jié),“在其它類Unix系統(tǒng)中安裝MySQL”。

注釋:MySQL授權(quán)表中的賬戶開始沒有密碼。啟動(dòng)服務(wù)器后,應(yīng)當(dāng)按照2.9節(jié),“安裝后的設(shè)置和測試”中的說明為它們?cè)O(shè)置密碼。

論壇徽章:
0
25 [報(bào)告]
發(fā)表于 2008-04-15 11:46 |只看該作者

2.5.在Mac OS X中安裝MySQL

可以在Mac OS X 10.2.x(“Jaguar”)和以上版本上Mac OS X使用二進(jìn)制安裝軟件包的PKG格式代替二進(jìn)制分發(fā)版來安裝MySQL。請(qǐng)注意該軟件包不支持舊版本的Mac OS X(例如,10.1.x)。

安裝軟件包位于硬盤映象(.dmg)文件中,必須首先雙擊搜索起中的圖標(biāo)來安裝該文件。應(yīng)當(dāng)安裝圖像并顯示其內(nèi)容。

要想獲得MySQL,參見2.1.3節(jié),“怎樣獲得MySQL”。

注釋:在繼續(xù)安裝前,一定要使用MySQL管理器應(yīng)用程序(在Mac OS X服務(wù)器上)或通過命令行的mysqladmin shutdown關(guān)閉所有運(yùn)行MySQL服務(wù)器實(shí)例。

要想安裝MySQL PKG文件,雙擊軟件包圖標(biāo)。將啟動(dòng)Mac OS X安裝軟件包安裝器,將指導(dǎo)你完成MySQL安裝。

Mac OS X安裝軟件包的安裝器中有一個(gè)缺陷,你會(huì)在目標(biāo)盤選擇對(duì)話框中發(fā)現(xiàn)該錯(cuò)誤消息:

You cannot install this software on this disk. (null)如果出現(xiàn)該錯(cuò)誤,只需要點(diǎn)擊Go Back按鈕返回前面的窗口。然后點(diǎn)擊Continue再次選擇目標(biāo)盤,此時(shí)應(yīng)當(dāng)可以正確地選擇目標(biāo)盤。我們已經(jīng)向Apple報(bào)告了該缺陷,它正在調(diào)查該問題。

MySQL的Mac OS X PKG安裝到/usr/local/mysql-VERSION,并且還會(huì)安裝一個(gè)符號(hào)連接,/usr/local/mysql,指向新的位置。如果有/usr/local/mysql目錄,首先將它改名為/usr/local/mysql.bak。安裝完后,安裝器執(zhí)行mysql_install_db在MySQL數(shù)據(jù)庫中創(chuàng)建授權(quán)表。

安裝布局與tar文件二進(jìn)制分發(fā)版類似;所有MySQL二進(jìn)制代碼位于目錄/usr/local/mysql/bin中。默認(rèn)情況,MySQL套接字文件創(chuàng)建為/tmp/mysql.sock。請(qǐng)參見2.1.5節(jié),“安裝布局”。

MySQL安裝需要Mac OS X的mysql用戶賬戶。在Mac OS X 10.2及以上版本中,默認(rèn)情況應(yīng)存在mysql用戶賬戶。

如果正運(yùn)行Mac OS X服務(wù)器,需要安裝MySQL。隨Mac OS X服務(wù)器版本安裝的MySQL版本如下表所示:

Mac OS X服務(wù)器版本
MySQL版本

10.2-10.2.2
3.23.51

10.2.3-10.2.6
3.23.53

10.3
4.0.14

10.3.2
4.0.16

10.4.0
4.1.10a


本節(jié)只覆蓋官方MySQL Mac OS X PKG版本。一定要閱讀Apple關(guān)于MySQL安裝的幫助信息:運(yùn)行“幫助視圖”應(yīng)用程序,選擇“Mac OS X服務(wù)器”幫助,搜索“MySQL”,閱讀標(biāo)題為“安裝MySQL”的內(nèi)容。

對(duì)于Mac OS X服務(wù)器上已經(jīng)安裝的MySQL版本,如果早于4.0,應(yīng)特別注意應(yīng)當(dāng)使用mysqld_safe而不是safe_mysqld來啟動(dòng)mysqld。

如果你前面在Mac OS X上安裝了從http://www.entropy.ch下載的Marc Liyanage的MySQL軟件包,你可以只使用該頁給出的二進(jìn)制安裝布局按照更新說明來安裝。

如果你從Marc的3.23.xx 版本或從Mac OS X的MySQL服務(wù)器版本升級(jí)到官方MySQL PKG,你還需要將已有MySQL授權(quán)表轉(zhuǎn)換為當(dāng)前格式,因?yàn)橐呀?jīng)加了許多新的安全權(quán)限。請(qǐng)參見2.10.2節(jié),“升級(jí)授權(quán)表”。

如果你想在系統(tǒng)啟動(dòng)過程中自動(dòng)啟動(dòng)MySQL,你還需要安裝MySQL Startup Item。在MySQL 5.1中,它是Mac OS X安裝盤映像的一部分,是一個(gè)獨(dú)立的安裝軟件包。只需要雙擊MySQLStartupItem.圖標(biāo)并按照說明來安裝。

請(qǐng)注意Startup Item只需要安裝一次!不需要在以后每次升級(jí)MySQL軟件包時(shí)都安裝它。

MySQL 5.1的Startup Item安裝在/Library/StartupItems/MySQLCOM。(在MySQL 4.1.2以前的版本,安裝位置為/Library/StartupItems/MySQL,但與Mac OS X服務(wù)器安裝的MySQL Startup Item沖突)。Startup Item安裝時(shí)在系統(tǒng)配置文件/etc/hostconfig中加入變量MySQLCOM=-YES-。如果你想要disable自動(dòng)啟動(dòng)MySQL,只需要將該變量更改為MySQLCOM=-NO-。

在Mac OS X服務(wù)器上,默認(rèn)MySQL安裝使用/etc/hostconfig文件中的變量MySQL。MySQL AB Startup Item安裝器將其設(shè)置為MySQL=-NO-禁用該變量。這樣可以避免啟動(dòng)時(shí)間與MySQL AB Startup Item使用的MySQLCOM變量沖突。但是,不會(huì)關(guān)閉運(yùn)行的MySQL服務(wù)器。你應(yīng)當(dāng)自己關(guān)閉。

安裝完后,可以在終端窗口運(yùn)行下面的命令來啟動(dòng)MySQL。你必須具有管理員權(quán)限來執(zhí)行該任務(wù)。

如果你已經(jīng)安裝的Startup Item:

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

(Enter your password, if necessary)

(Press Control-D or enter "exit" to exit the shell)

如果不使用Startup Item,輸入下面的命令序列:

shell> cd /usr/local/mysql

shell> sudo ./bin/mysqld_safe

(Enter your password, if necessary)

(Press Control-Z)

shell> bg

(Press Control-D or enter "exit" to exit the shell)

你應(yīng)當(dāng)能夠連接MySQL服務(wù)器,例如,通過運(yùn)行/usr/local/mysql/bin/mysql來連接。

注釋:MySQL授權(quán)表中的賬戶開始沒有密碼。啟動(dòng)服務(wù)器后,應(yīng)當(dāng)按照2.9節(jié),“安裝后的設(shè)置和測試”中的說明來設(shè)置密碼。

你可以為外殼源文件起一個(gè)別名,使它更容易訪問常用的程序,例如從命令行運(yùn)行mysql和mysqladmin。tcsh語法為:

aliasMySQL /usr/local/mysql/bin/mysqlaliasMySQLadmin /usr/local/mysql/bin/mysqladmin對(duì)于bash,使用:

aliasMySQL=/usr/local/mysql/bin/mysqlaliasMySQLadmin=/usr/local/mysql/bin/mysqladmin最好是在PATH環(huán)境變量中加入/usr/local/mysql/bin。例如,如果外殼命令是tcsh,在$HOME/.tcshrc文件中加入下面一行:

setenv PATH ${PATH}:/usr/local/mysql/bin如果根目錄中沒有.tcshrc文件,則用文本編輯器創(chuàng)建該文件。

如果你對(duì)已有的安裝進(jìn)行升級(jí),請(qǐng)注意安裝新MySQL PKG時(shí)不會(huì)卸載舊的安裝目錄。遺憾的是,Mac OS X安裝器尚未提供功能來正確升級(jí)前面安裝的軟件包。

要想在新安裝中使用已有的數(shù)據(jù)庫,你需要將舊數(shù)據(jù)目錄中的內(nèi)容復(fù)制到新的數(shù)據(jù)目錄。執(zhí)行該操作時(shí),確保關(guān)閉新、舊服務(wù)器。將以前安裝的MySQL數(shù)據(jù)庫文件拷貝過來并成功啟動(dòng)新的服務(wù)器后,應(yīng)當(dāng)卸載舊的文件以節(jié)省硬盤空間。并且,還應(yīng)當(dāng)卸掉位于/Library/Receipts/mysql-VERSION.pkg的舊版本Package Receipt目錄。

論壇徽章:
0
26 [報(bào)告]
發(fā)表于 2008-04-15 11:47 |只看該作者

2.6. 在NetWare中安裝MySQL

將MySQL裝入到NetWare首先由Novell實(shí)現(xiàn)。Novell客戶應(yīng)當(dāng)滿意,NetWare 6.5中捆綁了SQL二進(jìn)制,并具有自動(dòng)商業(yè)使用許可,用于運(yùn)行該版本NetWare的所有服務(wù)器。

NetWare的MySQL使用NetWare的Metrowerks CodeWarrior和專用跨編譯版GNU自動(dòng)工具編譯而成。

可以從http://dev.mysql.com/downloads/獲得最新的二進(jìn)制軟件包NetWare。請(qǐng)參見2.1.3節(jié),“怎樣獲得MySQL”。

為了使MySQL駐留在主機(jī)上,NetWare服務(wù)器必須滿足以下要求:

·         安裝的NetWare 6.5 或NetWare 6.0的Latest Support Pack(最新支持補(bǔ)。。

·         系統(tǒng)必須滿足Novell的最低要求以運(yùn)行相關(guān)版本的NetWare。

·         MySQL數(shù)據(jù)及其二進(jìn)制,必須安裝到NSS卷內(nèi);不支持傳統(tǒng)卷。

要想在NetWare下安裝MySQL,遵從下面的步驟:

1.    如果你對(duì)前面的安裝進(jìn)行升級(jí),停止MySQL服務(wù)器。應(yīng)使用下面的命令從服務(wù)器控制臺(tái)完成:

2.            SERVER:  mysqladmin -u root shutdown3.    從客戶端登錄到目標(biāo)服務(wù)器上,訪問安裝MySQL的位置。

4.    將二進(jìn)制軟件包Zip文件提取到服務(wù)器上。一定要使用Zip文件中的路徑。簡單地將文件提取到SYS:\是很安全的。

如果你從前面的安裝升級(jí),你可能需要復(fù)制數(shù)據(jù)目錄(例如,SYS:MYSQL\DATA)和my.cnf(如果你已經(jīng)定制)。然后你可以刪除舊版本的MySQL。

5.    你可以將目錄重新命名為更加一致和易于使用的名稱。在本手冊(cè)的例子中使用SYS:MYSQL來指向安裝目錄。

請(qǐng)注意在NetWare上安裝MySQL不會(huì)檢測到是否已經(jīng)安裝了NetWare發(fā)布之外的MySQL版本。因此,如果你已經(jīng)在SYS:\MYSQL安裝了從網(wǎng)站上下載的最新MySQL版本(例如,MySQL 4.1或更新版本),在升級(jí)NetWare服務(wù)器之前,必須重新命名文件夾;否則,SYS:\MySQL中的文件會(huì)被NetWare Support Pack中的版本所覆蓋。

6.    在服務(wù)器控制臺(tái)中,加入含有 MySQL NLM的目錄的搜索路徑。例如:

7.            SERVER:  SEARCH ADD SYS:MYSQL\BIN8.    初始化數(shù)據(jù)目錄和授權(quán)表,如果需要,應(yīng)在服務(wù)器控制臺(tái)執(zhí)行mysql_install_db。

9.    在服務(wù)器控制臺(tái)使用mysqld_safe啟動(dòng)MySQL服務(wù)器。

10.要完成安裝,還應(yīng)當(dāng)在autoexec.ncf中加入以下命令。例如,如果MySQL安裝在SYS:MYSQL中,你想讓MySQL自動(dòng)啟動(dòng),可以加入以下行:

11.         #Starts the MySQL 5.1.x database server12.        SEARCH ADD SYS:MYSQL\BIN13.        MYSQLD_SAFE如果MySQL運(yùn)行在NetWare 6.0上,我們強(qiáng)烈建議你在命令行中使用--skip-external-locking選項(xiàng):

#Starts the MySQL 5.1.x database serverSEARCH ADD SYS:MYSQL\BINMYSQLD_SAFE --skip-external-locking還需要使用CHECK TABLE和REPAIR TABLE來替代myisamchk,因?yàn)閙yisamchk使用外部鎖。已經(jīng)知道外部鎖在NetWare 6.0中有問題;在NetWare 6.5中已經(jīng)解決了該問題。

NetWare中的mysqld_safe提供了窗口保留功能。當(dāng)卸載(關(guān)閉)mysqld_safe NLM時(shí),默認(rèn)情況窗口不會(huì)消失。相反,會(huì)提示用戶輸入:

*<NLM has terminated; Press any key to close the screen>*如果你想讓NetWare自動(dòng)關(guān)閉窗口,在mysqld_safe中使用--autoclose選項(xiàng)。例如:

#Starts the MySQL 5.1.x database serverSEARCH ADD SYS:MYSQL\BINMYSQLD_SAFE --autoclose14.當(dāng)首次安裝或從前面的版本升級(jí)MySQL 5.1版時(shí),應(yīng)下載并安裝最新的相應(yīng)Perl模塊和PHP擴(kuò)展名:

·         Perl for NetWare: http://forge.novell.com/modules/ ... s.php/perl/Modules/

·         PHP for NetWare: http://forge.novell.com/modules/ ... ds.php/php/Modules/

(MySQL 4.1的PHP 5擴(kuò)展名適用于MySQL 5.1)。

在5.1.3節(jié),“mysqld_safe:MySQL服務(wù)器啟動(dòng)腳本”中詳細(xì)描述了NetWare中的mysqld_safe的行為。

如果服務(wù)器上已經(jīng)安裝了MySQL,一定要檢查autoexec.ncf中已有的MySQL啟動(dòng)命令,如果需要?jiǎng)t編輯或刪除這些命令。

注釋:MySQL授權(quán)表中的初始賬戶沒有密碼。啟動(dòng)服務(wù)器后,你應(yīng)當(dāng)使用2.9節(jié),“安裝后的設(shè)置和測試”中的說明來設(shè)置密碼。

論壇徽章:
0
27 [報(bào)告]
發(fā)表于 2008-04-15 11:47 |只看該作者

2.7. 在其它類Unix系統(tǒng)中安裝MySQL

本節(jié)介紹在各種平臺(tái)上安裝tar壓縮文件格式的MySQL二進(jìn)制分發(fā)版(文件有.tar.gz 擴(kuò)展名)。詳細(xì)目錄參見2.1.2.5節(jié),“MySQL AB編譯的MySQL二進(jìn)制版本”。

要想獲得MySQL,參見2.1.3節(jié),“怎樣獲得MySQL”。

MySQLtar文件二進(jìn)制分發(fā)版的文件名格式為mysql-VERSION-OS.tar.gz,其中VERSION是版本號(hào)(例如,5.1.2-alpha),OS表示分發(fā)版安裝的操作系統(tǒng)類型(例如,pc-linux-i686)。

除了這些通用軟件包,我們還為各平臺(tái)提供了具體的二進(jìn)制安裝軟件包。關(guān)于如何安裝的詳細(xì)信息參見2.2節(jié),“使用二進(jìn)制分發(fā)版的標(biāo)準(zhǔn)MySQL安裝”。

你需要下面的工具來安裝MySQL tar文件二進(jìn)制分發(fā)版:

·         GNU gunzip解壓縮分發(fā)版。

·         一個(gè)適當(dāng)?shù)膖ar解包分發(fā)版。 GNU tar已知可以。一些操作系統(tǒng)中含有預(yù)安裝的tar,已知有問題。例如,已知Mac OS X tar和Sun tar對(duì)于長文件名有問題。在Mac OS X中,你可以使用預(yù)安裝的gnutar程序。在其它系統(tǒng)中若tar不完善,你應(yīng)當(dāng)首先安裝GNU tar。

如果你遇到問題,在把問題寄到MySQL郵件目錄時(shí),請(qǐng)一定使用mysqlbug,就算問題不是一個(gè)缺陷,mysqlbug也會(huì)收集系統(tǒng)信息,將有助于其它人解決你的問題。不使用mysqlbug,你將減少得到你問題的一個(gè)解決方案的可能性!在你解包分發(fā)版后,你會(huì)在“bin”目錄下找到mysqlbug。請(qǐng)參見1.7.1.3節(jié),“如何通報(bào)缺陷和問題”。

必須執(zhí)行以便安裝并使用MySQL二進(jìn)制分發(fā)版的基本命令是:

shell> groupadd mysql

shell> useradd -g mysql mysql

shell> cd /usr/local

shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

shell> ln -s full-path-to-mysql-VERSION-OS mysql

shell> cd mysql

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root  .

shell> chown -R mysql data

shell> chgrp -R mysql .

shell> bin/mysqld_safe --user=mysql &

注釋:該過程未設(shè)置MySQL賬戶的密碼。完成下面的過程后,繼續(xù)執(zhí)行想2.9節(jié),“安裝后的設(shè)置和測試”。

下面為安裝二進(jìn)制分發(fā)版的更詳細(xì)的描述:

1.    為mysqld增加一個(gè)登錄用戶和組:

2.            shell> groupadd mysql

3.            shell> useradd -g mysql mysql

這些命令將增加MySQL組和MySQL用戶。不同版本的Unix中,useradd和groupadd的語法可能會(huì)稍有不同。還可以稱為adduser和addgroup。

你可能會(huì)將這些用戶和組命名為mysql之外的名稱。如果是這樣,在下面的步驟中替換為相應(yīng)的名稱。

4.    挑選一個(gè)你想解開分發(fā)包的目錄,進(jìn)入該目錄。在下面的例子中,我們將分發(fā)解包在“/usr/local”下(因此,下列說明假設(shè)你有權(quán)限在“/usr/local”中創(chuàng)建文件和目錄,如果該目錄被保護(hù),你需要以root實(shí)施安裝)。

5.            shell> cd /usr/local6.    從2.1.3節(jié),“怎樣獲得MySQL”中列出的站點(diǎn)之一獲得一個(gè)分發(fā)文件。對(duì)于一個(gè)給定的版本,所有平臺(tái)的二進(jìn)制分發(fā)版均從相同的MySQL源碼分發(fā)版構(gòu)建。

7.    解包分發(fā)版,將創(chuàng)建安裝目錄。然后生成到該目錄的一個(gè)符號(hào)鏈接:

8.            shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

9.            shell> ln -s full-path-to-mysql-VERSION-OS mysql

tar命令創(chuàng)建mysql-VERSION-OS目錄。ln命令生成到該目錄的一個(gè)符號(hào)鏈接。這讓你更容易地把安裝目錄指定為/usr/local/mysql。

使用GNU tar,則不再需要gunzip。可以用下面的命令替換第一行來解包和提取分發(fā)版:

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz10.進(jìn)入安裝目錄:

11.       shell> cd mysql你會(huì)在mysql目錄下發(fā)現(xiàn)幾個(gè)文件和子目錄,對(duì)安裝目的最重要的是“bin”和“scripts”子目錄。

·         bin

這個(gè)目錄包含客戶端程序和服務(wù)器,你應(yīng)該把這個(gè)目錄的完整路徑加到PATH環(huán)境變量,以便shell能正確的找到MySQL程序。請(qǐng)參見附錄F:環(huán)境變量。

·         scripts

這個(gè)目錄包含mysql_install_db腳本,用來初始化mysql數(shù)據(jù)庫的 授權(quán)表,其中貯存了服務(wù)器訪問允許。

12.如果還沒有安裝MySQL,必須創(chuàng)建MySQL授權(quán)表:

13.        shell> scripts/mysql_install_db --user=mysql如果你用root運(yùn)行命令,應(yīng)當(dāng)使用--user選項(xiàng)。選項(xiàng)的值應(yīng)與你在第一步為運(yùn)行服務(wù)器所創(chuàng)建的登錄賬戶相同。如果你用該用戶登錄來運(yùn)行命令,可以省略--user選項(xiàng)。

創(chuàng)建或升級(jí)授權(quán)表后,需要手動(dòng)重新啟動(dòng)服務(wù)器。

14.將程序二進(jìn)制的所有權(quán)改為root,數(shù)據(jù)目錄的所有權(quán)改為運(yùn)行mysqld 的用戶。如果位于安裝目錄(/usr/local/mysql)下,命令應(yīng)為:

15.        shell> chown -R root  .

16.        shell> chown -R mysql data

17.        shell> chgrp -R mysql .

第一個(gè)命令將文件的所有屬性改為root用戶。第二個(gè)命令將數(shù)據(jù)目錄的所有屬性改為mysql用戶。第三個(gè)命令將組屬性改為mysql組。

18.如果你喜歡在引導(dǎo)機(jī)器時(shí)自動(dòng)啟動(dòng)MySQL,可以拷貝support-files/mysql.server文件到系統(tǒng)有啟動(dòng)文件的地方。更多的信息可以在support-files/mysql.server腳本中和2.9.2.2節(jié),“自動(dòng)啟動(dòng)和停止MySQL”中找到。

19.如果安裝了DBI和DBD::mysql Perl模塊,可以使用bin/mysql_setpermission腳本增加新賬戶。關(guān)于說明,參見 2.13節(jié),“Perl安裝注意事項(xiàng)”。

20.如果你想使用mysqlaccess而在某個(gè)非標(biāo)準(zhǔn)的地點(diǎn)有MySQL分發(fā)版,你必須改變地點(diǎn),在那兒mysqlaccess期望找到mysql客戶端。編輯“bin/mysqlaccess”腳本,大約在第18行,尋找類似下面的行:

21.          $MYSQL     = '/usr/local/bin/mysql';    # path to mysql executable改變路徑以反映出mysql實(shí)際存儲(chǔ)在你系統(tǒng)上的地點(diǎn)。如果不這樣做,當(dāng)運(yùn)行mysqlaccess時(shí),你將遇到一個(gè)broken pipe的錯(cuò)誤。

在所有東西被解包并且安裝以后,你應(yīng)該初始化并且測試你的分發(fā)版。

可以用下列命令啟動(dòng)MySQL服務(wù)器:

shell> bin/mysqld_safe --user=mysql &關(guān)于mysqld_safe的詳細(xì)信息參見5.1.3節(jié),“mysqld_safe:MySQL服務(wù)器啟動(dòng)腳本”。

注釋:MySQL授權(quán)表中的賬戶開始沒有密碼。啟動(dòng)服務(wù)器后,應(yīng)當(dāng)使用2.9節(jié),“安裝后的設(shè)置和測試”中的說明來設(shè)置密碼。

論壇徽章:
0
28 [報(bào)告]
發(fā)表于 2008-04-15 11:48 |只看該作者

2.8. 使用源碼分發(fā)版安裝MySQL

安裝源碼之前,首先檢查我們的二進(jìn)制是否適合你的平臺(tái),是否可以工作。我們做了大量的工作確保我們的二進(jìn)制用最合適的選項(xiàng)來構(gòu)建。

要獲得MySQLa 源碼分發(fā)版,參見2.1.3節(jié),“怎樣獲得MySQL”。

MySQL源碼分發(fā)版為tar壓縮文件,文件名格式為mysql-VERSION.tar.gz,其中 VERSION是版本號(hào),例如5.1.2-alpha。

你需要下列工具構(gòu)造并安裝MySQL源碼:

·         GNU gunzip解壓縮該分發(fā)版。

·         一個(gè)適當(dāng)?shù)膖ar解包分發(fā)版。GNU tar已知可以。一些操作系統(tǒng)中含有預(yù)安裝的tar,已知有問題。例如,已知Mac OS X tar和Sun tar對(duì)于長文件名有問題。在Mac OS X中,你可以使用預(yù)安裝的gnutar程序。在其它系統(tǒng)中若tar不完善,你應(yīng)當(dāng)首先安裝GNU tar。

·         一個(gè)能工作的ANSI C++編譯器。gcc> = 2.95.2、egcs> = 1.0.2或egcs 2.91.66、SGI C++和SunPro C++是一些已知能工作的編譯器。當(dāng)使用gcc時(shí),不需要libg++。gcc2.7.x有一個(gè)缺陷,使得它可能不能編譯一些完全合法的C++文件,例如“sql/sql_base.cc”。如果你僅有g(shù)cc2.7.x,你必須升級(jí)gcc才能編譯MySQL。已知gcc 2.8.1在某些平臺(tái)上有一些問題,因此如果平臺(tái)上有新的編譯器,則不要使用gcc 2.8.1。

編譯MySQL 3.23.x時(shí),建議使用gcc 2.95.2或更新版。

·         一個(gè)優(yōu)秀的make程序。總是推薦GNU make且有時(shí)必須使用。如果你有問題,我們推薦試一試GNU make3.75或更新版。

如果你使用的gcc版本足夠新,可以識(shí)別-fno-exceptions選項(xiàng),則使用該選項(xiàng)非常重要。否則,你編譯二進(jìn)制時(shí)出現(xiàn)問題。我們建議你同時(shí)使用-felide-constructors和-fno-rtti選項(xiàng)。當(dāng)有疑問時(shí),執(zhí)行下面操作:

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \       -fno-exceptions -fno-rtti" ./configure \       --prefix=/usr/local/mysql --enable-assembler \       --with-mysqld-ldflags=-all-static在大多數(shù)系統(tǒng)中,可以得到快速、穩(wěn)定的二進(jìn)制。

如果你遇到問題,在把問題郵寄到MySQL郵件目錄時(shí),請(qǐng)總是使用mysqlbug,就算問題不是一個(gè)缺陷,mysqlbug收集系統(tǒng)信息,將有助于其它人解決你的問題。不使用mysqlbug,你將減少得到問題的解決方案的可能性!在解包分發(fā)版后,你會(huì)在“bin”目錄下找到mysqlbug。請(qǐng)參見1.7.1.3節(jié),“如何通報(bào)缺陷和問題”。

2.8.1. 源碼安裝概述
你必須執(zhí)行的安裝MySQL源碼分發(fā)版的基本命令是:

shell> groupadd mysqlshell> useradd -g mysql mysqlshell> gunzip < mysql-VERSION.tar.gz | tar -xvf -shell> cd mysql-VERSIONshell> ./configure --prefix=/usr/local/mysqlshell> makeshell> make installshell> cp support-files/my-medium.cnf /etc/my.cnfshell> cd /usr/local/mysqlshell> bin/mysql_install_db --user=mysqlshell> chown -R root  .shell> chown -R mysql varshell> chgrp -R mysql .shell> bin/mysqld_safe --user=mysql &如果從一個(gè)源碼RPM開始,那么執(zhí)行如下命令:

shell> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm這樣你制作一個(gè)可以安裝的二進(jìn)制RPM。對(duì)于舊版本的RPM,你可能需要替換用rpm替換命令rpmbuild。

注釋:該過程不為任何MySQL賬戶設(shè)置密碼。完成下面的過程后,根據(jù)2.9節(jié),“安裝后的設(shè)置和測試”進(jìn)行安裝后的設(shè)置和測試。

以下是安裝MySQL源碼分發(fā)版的更詳細(xì)的描述:

1.    為mysqld增加一個(gè)登錄用戶和組:

2.            shell> groupadd mysql3.            shell> useradd -g mysql mysql這些命令將增加MySQL組和 MySQL用戶。不同版本的Unix中,useradd 和groupadd的語法可能會(huì)稍有不同。還可以稱為adduser和addgroup。

你可能會(huì)將這些用戶和組命名為mysql之外的名稱。如果是這樣,在下面的步驟中替換為相應(yīng)的名稱。

4.    挑選一個(gè)你想解開分發(fā)包的目錄,進(jìn)入該目錄。

5.    從2.1.3節(jié),“怎樣獲得MySQL”中列出的站點(diǎn)之一獲得一個(gè)分發(fā)文件。

6.    在當(dāng)前目錄下解包分發(fā)版:

7.            shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -該命令創(chuàng)建mysql-VERSION 目錄。

使用GNU tar,則不再需要gunzip。你可以用下面的命令來解包和提取分發(fā):

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz8.    進(jìn)入解包分發(fā)版的頂級(jí)目錄:

9.            shell> cd  mysql-VERSION請(qǐng)注意目前必須從頂級(jí)目錄配置和構(gòu)建MySQL。你不能在其它目錄中構(gòu)建。

10.配置發(fā)布版并且編譯:

11.        shell> ./configure --prefix=/usr/local/mysql12.        shell> make當(dāng)你運(yùn)行configure時(shí),你可能想要指定一些選項(xiàng),運(yùn)行./configure --help得到一個(gè)選項(xiàng)列表。2.8.2節(jié),“典型配置選項(xiàng)”討論一些很有用的選項(xiàng)。

如果configure失敗,你將向MySQL郵件目錄發(fā)送包含你認(rèn)為能幫你解決該問題的包含“config.log”中所有行的郵件,也要包括configure的最后幾行輸出。用mysqlbug腳本郵寄錯(cuò)誤報(bào)告。請(qǐng)參見1.7.1.3節(jié),“如何通報(bào)缺陷和問題”。

如果編譯失敗,參見2.8.4節(jié),“處理MySQL編譯問題”尋求幫助。

13.安裝分發(fā)版:

14.        shell> make install如果你想要設(shè)置一個(gè)選項(xiàng)文件,使用support-files目錄中的一個(gè)作為模板。例如:

shell> cp support-files/my-medium.cnf /etc/my.cnf可能你需要用root用戶運(yùn)行這些命令。

如果想要配置為支持InnoDB表,應(yīng)當(dāng)編輯/etc/my.cnf文件,去掉innodb_...開始選項(xiàng)行前面的#符,并將選項(xiàng)值改為你想要的。請(qǐng)參見4.3.2節(jié),“使用選項(xiàng)文件”和15.2.3節(jié),“InnoDB配置”。

15.進(jìn)入安裝目錄:

16.        shell> cd /usr/local/mysql17.如果還沒有安裝的MySQL,必須創(chuàng)建MySQL授權(quán)表:

18.        shell> bin/mysql_install_db --user=mysql如果用root運(yùn)行命令,應(yīng)當(dāng)使用--user選項(xiàng)。選項(xiàng)的值應(yīng)與你在第一步為運(yùn)行服務(wù)器所創(chuàng)建的登錄賬戶相同。如果用該用戶登錄來運(yùn)行命令,可以省略--user選項(xiàng)。

用mysql_install_db創(chuàng)建MySQL授權(quán)表后,需要手動(dòng)重新啟動(dòng)服務(wù)器

19.將程序二進(jìn)制的所有權(quán)改為root,數(shù)據(jù)目錄的所有權(quán)改為你運(yùn)行mysqld的用戶。如果位于安裝目錄(/usr/local/mysql)下,命令應(yīng)為:

20.        shell> chown -R root  .21.        shell> chown -R mysql var22.        shell> chgrp -R mysql .第一個(gè)命令將文件的所有屬性改為root用戶。第二個(gè)命令將數(shù)據(jù)目錄的所有屬性改為mysql用戶。第三個(gè)命令將組屬性改為mysql組。

23.如果你喜歡在引導(dǎo)機(jī)器時(shí)自動(dòng)啟動(dòng)MySQL,你可以拷貝support-files/mysql.server文件到你系統(tǒng)有啟動(dòng)文件的地方。更多的信息可以在support-files/mysql.server腳本中和2.9.2.2節(jié),“自動(dòng)啟動(dòng)和停止MySQL”中找到。

24.如果安裝了DBI和DBD::mysql Perl模塊,可以使用bin/mysql_setpermission腳本增加新賬戶。關(guān)于說明,參見2.13節(jié),“Perl安裝注意事項(xiàng)”。

在所有東西被安裝以后,你應(yīng)當(dāng)使用該命令初始化并且測試你的分發(fā)版:

shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &如果這個(gè)命令提示mysqld daemon ended并馬上失敗,那么你能在數(shù)據(jù)目錄中的文件“hostname'.err”找到一些信息。

關(guān)于mysqld_safe的詳細(xì)信息參見5.1.3節(jié),“mysqld_safe:MySQL服務(wù)器啟動(dòng)腳本”。

注釋:MySQL授權(quán)表中的賬戶開始沒有密碼。啟動(dòng)服務(wù)器后,你應(yīng)當(dāng)使用2.9節(jié),“安裝后的設(shè)置和測試”中的說明來設(shè)置密碼。

論壇徽章:
0
29 [報(bào)告]
發(fā)表于 2008-04-15 11:48 |只看該作者
2.8.2. 典型配置選項(xiàng)
configure腳本給你一個(gè)很大的控制權(quán)來控制如何配置MySQL源碼分發(fā)版。一般使用configure命令行的選項(xiàng)來進(jìn)行。你也可以用某些環(huán)境變量作用于configure。請(qǐng)參見附錄F:環(huán)境變量。要查看configure支持的選擇列表,可以運(yùn)行命令:

shell> ./configure --help如果只編譯MySQL客戶端庫和客戶端程序而不是服務(wù)器,使用--without-server選項(xiàng):
shell> ./configure --without-server
如果你沒有C++編譯器,則不能編譯mysql(有一個(gè)客戶端程序需要C++)。在這種情況下,你可以去掉configure里面測試C++編譯器的代碼,然后運(yùn)行帶有 --without-server選項(xiàng)的./configure。編譯步驟步將仍然嘗試構(gòu)造mysql,但是你可以忽略任何關(guān)于“mysql.cc”的警告。(如果make停止,試試make -k告訴它即使出錯(cuò)繼續(xù)剩下的構(gòu)造步驟)。

·         如果你想要構(gòu)建嵌入式MySQL庫 (libmysqld.a),你應(yīng)當(dāng)使用--with-embedded-server選項(xiàng)。

如果你不想要位于“/usr/local/var”目錄下面的日志(log)文件和數(shù)據(jù)庫,使用類似于下列configure命令的一個(gè):
shell>./configure--prefix=/usr/local/mysql
shell>./configure--prefix=/usr/local –
       localstatedir=/usr/local/mysql/data
第一個(gè)命令改變安裝前綴以便將所有內(nèi)容安裝到“/usr/local/mysql”下面而非 默認(rèn)的“/usr/local”。第二個(gè)命令保留默認(rèn)安裝前綴,但是覆蓋了數(shù)據(jù)庫目錄默認(rèn)目錄(通常是“/usr/local/var”)并且把它改為/usr/local/mysql/data。編譯完MySQL后,可以通過選項(xiàng)文件更改這些選項(xiàng)。請(qǐng)參見4.3.2節(jié),“使用選項(xiàng)文件”。

如果你正在使用Unix并且你想要MySQL的套接字位于 默認(rèn)位置以外的某個(gè)地方(通常在目錄“/tmp”或“/var/run”,使用象這樣的configure的命令:
shell> ./configure\-- with-unix-socket-
path=/usr/local/mysql/tmp/mysql.sock
注意給出的文件名必須是一個(gè)絕對(duì)路徑。你還可以在以后使用MySQL選項(xiàng)文件更改mysql.sock的位置。請(qǐng)參見A.4.5節(jié),“如何保護(hù)或更改MySQL套接字文件/tmp/mysql.sock”。

如果你想編譯靜態(tài)鏈接程序(例如,制作二進(jìn)制分發(fā)版、獲得更快的速度或與解決與RedHat分發(fā)版的一些問題),像這樣運(yùn)行configure:
·                shell>./configure --with-client-ldflags=-all-static\

·                        --with-mysqld-ldflags=-all-static

如果你正在使用gcc并且沒有安裝libg++或libstdc++,你可以告訴configure使用gcc作為C++編譯器:
shell> CC=gcc  CXX=gcc  ./configure
當(dāng)你使用gcc作為C++編譯器用時(shí),它將不試圖鏈接libg++或libstdc++。即使你安裝了這些庫,這樣也很好,因?yàn)檫^去使用MySQL時(shí),它們的部分版本會(huì)出現(xiàn)一些奇怪的問題。

下面列出了一些經(jīng)常使用的編譯器和環(huán)境變量設(shè)定值。

o        gcc 2.7.2:

o                     CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"o        egcs 1.0.3a:

o                     CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors \o                     -fno-exceptions -fno-rtti"o        gcc 2.95.2:

o                     CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \o                     -felide-constructors -fno-exceptions -fno-rtti"o        pgcc 2.90.29 或更新版:

o                     CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \o                     CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \o                     -felide-constructors -fno- exceptions -fno-rtti"在大多數(shù)情況,在configure行使用前面列出的選項(xiàng)并加入下面的選項(xiàng),可以得到合理的優(yōu)化的MySQL二進(jìn)制:

--prefix=/usr/local/mysql --enable-assembler \--with-mysqld-ldflags=-all-static換句話說,對(duì)于所有最近的gcc版,整個(gè)configure行應(yīng)為:

CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \-felide-constructors -fno- exceptions -fno-rtti" ./ configure \--prefix=/usr/local/mysql --enable-assembler \--with-mysqld-ldflags=-all-static我們?cè)贛ySQL網(wǎng)址http://www.mysql.com/提供的二進(jìn)制均已經(jīng)編譯過并進(jìn)行了優(yōu)化,對(duì)于大多數(shù)用戶應(yīng)當(dāng)比較完善。請(qǐng)參見2.1.2.5節(jié),“MySQL AB編譯的MySQL二進(jìn)制版本”。其中有一些配置設(shè)定值,可以選用來構(gòu)建更快的二進(jìn)制,但是只適用高級(jí)用戶。請(qǐng)參見7.5.4節(jié),“編譯和鏈接怎樣影響MySQL的速度”。

如果構(gòu)造失敗并且產(chǎn)生有關(guān)編譯器或鏈接器的錯(cuò)誤,不能創(chuàng)建共享庫“l(fā)ibmysqlclient.so.#”(“#”是一個(gè)版本號(hào)), 你可以通過為configure指定--disable-shared選項(xiàng)來解決此問題。在這種情況下,configure將不構(gòu)造一個(gè)共享libmysqlclient.so.#庫。

默認(rèn)地,MySQL使用latin1(cp1252)字符集。為了改變 默認(rèn)設(shè)置,使用--with-charset選項(xiàng):
shell> ./configure -- with-charset=CHARSET
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或win1251ukr。請(qǐng)參見5.10.1節(jié),“數(shù)據(jù)和排序用字符集”。

可以指定默認(rèn)校對(duì)規(guī)則。MySQL默認(rèn)使用latin1_swedish_ci校對(duì)規(guī)則。要想更改,使用--with-collation選項(xiàng):

shell> ./configure --with-collation=COLLATION要想更改字符集和校對(duì)規(guī)則,要同時(shí)使用--with-charset和--with-collation選項(xiàng)。 校對(duì)規(guī)則必須是字符集的合法校對(duì)規(guī)則。(使用SHOW COLLATION語句來確定每個(gè)字符集使用哪個(gè)校對(duì)規(guī)則)。

如果想在服務(wù)器和客戶端之間變換字符,你應(yīng)該看一下SET OPTION CHARACTER SET命令。請(qǐng)參見13.5.3節(jié),“SET語法”。

警告:如果你在創(chuàng)建了任何數(shù)據(jù)庫表之后改變字符集,你將必須對(duì)每個(gè)表運(yùn)行myisamchk -r -q --set-character-set=charset,否則索引可能不正確地排序。(如果安裝了MySQL,創(chuàng)建一些表,然后重新配置MySQL使用一個(gè)不同的字符集并且重新安裝它,這時(shí)就可能發(fā)生這種情況。)

通過configure選項(xiàng)--with-extra-charsets=LIST,你可以定義在服務(wù)器中再定義哪些字符集。LIST 指下面任何一項(xiàng):

o        空格間隔的一系列字符集名

o        complex -,以包括不能動(dòng)態(tài)裝載的所有字符集

o        all –,以將所有字符集包括進(jìn)二進(jìn)制

為了配置MySQL帶有調(diào)試代碼,使用--with-debug選項(xiàng):
shell> ./configure --with-debug
這導(dǎo)致包含一個(gè)安全的內(nèi)存分配器,能發(fā)現(xiàn)一些錯(cuò)誤和并提供關(guān)于正在發(fā)生的事情的輸出。請(qǐng)參見E.1節(jié),“調(diào)試MySQL服務(wù)器”。

·         如果客戶端程序使用線程,還必須使用--enable-thread-safe-client配置選項(xiàng)來編譯線程安全版的MySQL客戶端庫。將創(chuàng)建一個(gè)libmysqlclient_r庫,可以用來連接應(yīng)用程序線程。請(qǐng)參見25.2.15節(jié),“如何生成線程式客戶端”。

·         可以使用--with-big-tables選項(xiàng)構(gòu)建支持大數(shù)據(jù)庫表的MySQL。

該選項(xiàng)使變量用來將表行數(shù)保存到unsigned long long中而不是unsigned long。結(jié)果是允許表有大約1.844E+19 ((232)2)行而不是232 (~4.295E+09) 行。在以前,要完成該功能必須手動(dòng)將-DBIG_TABLES傳遞給編譯器。

屬于特定系統(tǒng)的選項(xiàng)可在本章特定系統(tǒng)的小節(jié)里找到。請(qǐng)參見2.12節(jié),“具體操作系統(tǒng)相關(guān)的注意事項(xiàng)”
2.8.3. 從開發(fā)源碼樹安裝
注意:如果你想幫助我們測試新代碼,應(yīng)當(dāng)閱讀本節(jié)。如果你只想在系統(tǒng)上安裝并運(yùn)行MySQL,應(yīng)當(dāng)使用標(biāo)準(zhǔn)發(fā)布分發(fā)版(二進(jìn)制或源碼分發(fā)版)。

要想獲得我們的最新開發(fā)源碼樹,應(yīng)使用說明:

1.    從http://www.bitmover.com/bk-client.shar下載BitKeeper免費(fèi)客戶端。

2.    在Unix上安裝免費(fèi)客戶端:

3.            shell> sh bk-client.shar4.            shell> cd bk_client-1.15.            shell> make all6.            shell> PATH=$PWDPATH在Windows上的安裝方法:

·         從http://cygwin.com下載并安裝Cygwin。

·         確保gcc和make已經(jīng)安裝到Cygwin。可以用which gcc和 which make命令進(jìn)行測試。如果任何一個(gè)沒有安裝,運(yùn)行 Cygwin安裝包管理器,選擇gcc、make并安裝。

·         在Cygwin中,運(yùn)行:

·                      shell> sh bk-client.shar·                      shell> cd bk_client-1.1然后編輯Makefile并將行s $(CC) $(CFLAGS) -o sfio -lz sfio.c更改為:

$(CC) $(CFLAGS) -o sfio sfio.c -lz現(xiàn)在運(yùn)行make命令并設(shè)置路徑:

shell> make allshell> PATH=$PWDPATH7.    安裝BitKeeper免費(fèi)客戶端后,首先進(jìn)入工作目錄,然后使用以下命令在本地復(fù)制MySQL 5.1:

8.            shell> sfioball -r+ bk://mysql.bkbits.net/mysql-5.1 mysql-5.1一般情況,你不需要自己構(gòu)建文檔,因?yàn)槲覀円呀?jīng)在http://dev.mysql.com/doc/提供了許多格式。我們每天更新你可以下載的格式(HTML、PDF等),因此你沒有必要從MySQLdoc樹中的DocBook XML基本格式來創(chuàng)建。如果你想要復(fù)制文檔庫,使用下面的命令:

shell> sfioball -r+ bk://mysql.bkbits.net/mysqldoc mysqldoc在前面的例子中,在當(dāng)前目錄的MySQL-5.1/子目錄中設(shè)置源碼樹。

如果你位于防火墻后面,只能初始化HTTP連接,還可以通過HTTP使用BitKeeper。

如果需要使用代理服務(wù)器,設(shè)置環(huán)境變量http_proxy指向代理:

shell> export http_proxy="http://your.proxy.server:8080/"當(dāng)復(fù)制庫時(shí)用http://替換bk://。例如:

shell> sfioball -r+ http://mysql.bkbits.net/mysql-5.1 mysql-5.1下載源碼樹可能需要一段時(shí)間,取決于連接速度。請(qǐng)耐心等待。

9.    要想更新本地MySQL 5.1庫復(fù)制,使用命令:

10.        shell> update bk://mysql.bkbits.net/mysql-5.111.你需要GNU make、autoconf 2.58 (或更新版)、automake 1.8、libtool 1.5和m4來運(yùn)行后面的命令。盡管許多操作系統(tǒng)安裝了make,很可能編譯失敗,出現(xiàn)許多奇怪的缺陷消息。因此,強(qiáng)烈建議你使用GNU make(有時(shí)名為gmake)。

幸運(yùn)的是,大量的操作系統(tǒng)預(yù)裝了GNU工具鏈或提供了可安裝軟件包。你可以隨時(shí)從下面的地址下載:

·         http://www.gnu.org/software/autoconf/

·         http://www.gnu.org/software/automake/

·         http://www.gnu.org/software/libtool/

·         http://www.gnu.org/software/m4/

·         http://www.gnu.org/software/make/

要想配置MySQL 5.1,你還需要GNU bison 1.75或更新版。舊版本的bison會(huì)報(bào)告錯(cuò)誤:

sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded注釋:實(shí)際上并沒有超出最大表空間;這是由舊版本的bison的缺陷造成的該問題。

下面的例子顯示了配置源碼樹需要的典型命令。第一個(gè)cd命令將位置改為樹的頂級(jí)目錄;用相應(yīng)目錄名替換MySQL-5.1。

shell> cd mysql-5.1shell> bk -r editshell> aclocal; autoheadershell> libtoolize --automake --forceshell> automake --force --add-missing; autoconfshell> (cd innobase; aclocal; autoheader; autoconf; automake)shell> (cd bdb/dist; sh s_all)shell> ./configure  # Add your favorite options hereshell> make對(duì)于下面的命令,可以使用BUILD/autorun.sh作為快捷方式:

shell> aclocal; autoheadershell> libtoolize --automake --forceshell> automake --force --add-missing; autoconfshell> (cd innobase; aclocal; autoheader; autoconf; automake)shell> (cd bdb/dist; sh s_all)使用將目錄改為innobase和bdb/dist目錄的命令行來配置InnoDB和 Berkeley DB (BDB)儲(chǔ)存引擎。如果你不需要InnoDB或BDB支持,你可以省略這些命令行。

如果在該階段你遇到一些奇怪的錯(cuò)誤,請(qǐng)確認(rèn)你是否已經(jīng)安裝了 libtool。

標(biāo)準(zhǔn)配置腳本位于BUILD/子目錄。你會(huì)發(fā)現(xiàn)使用BUILD/compile-pentium-debug腳本比使用前面的外殼命令要方便得多。要想在不同的架構(gòu)上編譯,可以修改腳本,即去掉Pentium相關(guān)標(biāo)志。

12.構(gòu)建完成后,運(yùn)行make install。在產(chǎn)品機(jī)器上運(yùn)行時(shí)應(yīng)注意;該命令會(huì)覆蓋你正使用的版本。如果你安裝了另一個(gè)MySQL,我們建議你使用 與你的產(chǎn)品服務(wù)器上不同的--prefix、--with-tcp-port和--unix-socket-path選項(xiàng)值來運(yùn)行./configure。

13.強(qiáng)制運(yùn)行新安裝和嘗試會(huì)破壞新功能。應(yīng)先運(yùn)行make test。請(qǐng)參見27.1.2節(jié),“MySQL測試套件”。

14.如果你已經(jīng)進(jìn)入make階段而分發(fā)版不編譯,請(qǐng)報(bào)告給我們的http://bugs.mysql.com/中的缺陷數(shù)據(jù)庫。如果你已經(jīng)安裝了GNU工具的最新版本,如果視圖處理配置文件時(shí)出錯(cuò),請(qǐng)報(bào)告給我們。但是,如果你執(zhí)行aclocal并且遇到command not found error或類似問題,不要報(bào)告給我們。而是應(yīng)確保安裝了所有必要的工具,并且PATH變量設(shè)置正確,保證外殼命令可以找到它們。

15.復(fù)制完庫(sfioball)獲得源碼樹后,你應(yīng)當(dāng)定期更新庫(update)。

16.你可以檢查樹的更改史,瀏覽源碼樹中的BK/ ChangeLog文件并查看ChangeSet描述找到所有不同點(diǎn)。要想檢查特殊的更改集,必須使用sfioball命令提取源碼樹的兩次不同的修訂,然后使用外部diff命令來比較。如果你看到有疑問的奇怪的不同之處或代碼,一定要向MySQL internals郵件列表發(fā)送郵件。請(qǐng)參見1.7.1.1節(jié),“The MySQL郵件列表”。并且,如果你有更好的思想,請(qǐng)向上述地址發(fā)送郵件。

17.BitKeeper免費(fèi)客戶端預(yù)裝了源碼。免費(fèi)客戶端可用的唯一文檔是源碼本身。

你還可以在線瀏覽更改集、注釋和源碼。要想瀏覽MySQL 5.1的相關(guān)信息,請(qǐng)到http://mysql.bkbits.net:8080/mysql-5.1。

2.8.4. 處理MySQL編譯問題
所有MySQL程序在Solaris或Linux上使用gcc編譯并且沒有任何警告。在其它系統(tǒng)上,由于系統(tǒng)包含文件的差別可能會(huì)發(fā)生警告。對(duì)于使用MIT-pthreads時(shí)發(fā)生的警告。請(qǐng)參見2.8.5節(jié),“MIT-pthreads注意事項(xiàng)”。其它問題,檢查下面的表。

許多問題的解決方案涉及重新配置。如果你確實(shí)需要重新配置,注意下列事項(xiàng):

如果configure在它已經(jīng)被運(yùn)行了以后運(yùn)行,它可以使用先前收集的信息。這個(gè)信息存儲(chǔ)在“config.cache”里面。當(dāng)configure啟動(dòng)時(shí),它尋找該文件而且如果它存在,假定信息仍然是正確的,讀入它的內(nèi)容。當(dāng)你重新配置時(shí),該假設(shè)無效。
每次運(yùn)行configure的時(shí)候,必須運(yùn)行make再重新編譯。然而, 你可能想要把先前構(gòu)造的老的目標(biāo)文件刪除,因?yàn)樗鼈兪褂貌煌呐渲眠x項(xiàng)編譯而成。
為了防止使用舊的配置信息或目標(biāo)文件,重新運(yùn)行configure前運(yùn)行這些命令:

shell> rm  config.cache

shell> make clean

另外,你可以運(yùn)行make distclean。

下表描述了一些最常發(fā)生的編譯MySQL的問題:

如果在編譯“sql_yacc.cc”時(shí),遇到如下錯(cuò)誤,可能是存儲(chǔ)器或交換空間溢出:
·                Internal compiler error: program cc1plus got fatal signal 11·                Out of virtual memory·                Virtual memory exhausted該問題是gcc要求大量的內(nèi)存編譯帶有嵌入函數(shù)(inline function)的“sql_yacc.cc”。試試以--with-low-memory選項(xiàng)運(yùn)行configure:

shell> ./configure -- with-low-memory

如果你正在使用gcc,該選項(xiàng)使得將-fno-inline加到編譯行,如果你正使用其它的編譯器,則加入-O0。你應(yīng)該試一試--with-low-memory選項(xiàng),即使你有特別多的存儲(chǔ)器和交換空間,而你認(rèn)為不可能運(yùn)行得溢出。這個(gè)問題甚至?xí)诤芸犊挠布渲玫南到y(tǒng)上出現(xiàn),通常用--with-low-memory選項(xiàng)修正它。

默認(rèn)情況,configure選則c++作為編譯器并用-lg++選項(xiàng)的GNU c++鏈接。如果你正在使用gcc,這個(gè)特性在配置期間導(dǎo)致如下問題:
·                configure: error: installation or configuration problem:

·                C++ compiler cannot create executables.

也可能在編譯期間看到g++、libg++或libstdc++相關(guān)的問題。

這些問題的一個(gè)原因是你可能沒有g(shù)++,或可能有g(shù)++但無libg++或libstdc++?匆幌隆癱onfig.log”文件。它應(yīng)該包含c++編譯器不能工作的準(zhǔn)確原因!為了解決這些問題,可以使用gcc作為C++編譯器。試試設(shè)置環(huán)境變量CXX為"gcc -O3"。例如:

shell> CXX="gcc -O3" ./configure

可以工作,因?yàn)間cc象g++一樣編譯C++源碼,但 默認(rèn)地它不鏈接libg++或libstdc++。

解決這些問題的其它方法當(dāng)然是安裝g++、libg++和libstdc++。然而,我們建議不要在MySQL中使用libg++或libstdc++,因?yàn)橹粫?huì)增加mysqld二進(jìn)制空間而不會(huì)帶來任何好處。部分版本的庫在過去曾經(jīng)給用戶帶來一些奇怪的問題。

·         如果你的編譯以下面任何錯(cuò)誤而失敗,必須升級(jí)make版本到GNUmake:

·                making all in mit-pthreads·                make: Fatal error in reader: Makefile, line 18:·                Badly formed macro assignment或:

make: file `Makefile' line 18: Must be a separator (:或:

pthread.h: No such file or directory已知Solaris和FreeBSD的make程序有問題。

已知GNU make 3.75能工作。

·         如果你想要定義C或C++編譯器所使用的標(biāo)志,把標(biāo)志加到CFLAGS和CXXFLAGS環(huán)境變量中即可。也可以使用CC和CXX來指定編譯器名字。例如:

·                shell> CC=gcc·                shell> CFLAGS=-O3·                shell> CXX=gcc·                shell> CXXFLAGS=-O3·                shell> export CC CFLAGS CXX CXXFLAGS對(duì)于已經(jīng)知道在不同系統(tǒng)上有用的標(biāo)志定義列表,參見2.1.2.5節(jié),“MySQL AB編譯的MySQL二進(jìn)制版本”。

·         如果你遇到象如下的一條錯(cuò)誤消息,則需要升級(jí)gcc編譯器:

·                client/libmysql.c:273: parse error before `__attribute__'gcc2.8.1已知可以工作,但是我們推薦使用gcc 2.95.2或egcs 1.0.3a。

·         如果編譯mysqld時(shí)顯示例如下面的那些錯(cuò)誤, configure沒有正確地檢測傳到accept()、getsockname()或getpeername()最后參數(shù)的類型:

·                cxx: Error: mysqld.cc, line 645: In this statement, the referenced·                     type of the pointer value ''length'' is ''unsigned long'',·                     which is not compatible with ''int''.·                new_sock = accept(sock, (struct sockaddr *)&cAddr, &length);為了修正它,編輯“config.h”文件(它由configure生成)。尋找這些行:

/* Define as the base type of the last arg to accept */#define SOCKET_SIZE_TYPE XXX更改XXX為size_t或int,取決于你的操作系統(tǒng)。(注意:每次運(yùn)行configure都必須這樣做,因?yàn)閏onfigure重新生成“config.h”)。
“sql_yacc.cc”文件由“sql_yacc.yy”生成。通常構(gòu)造過程不需要?jiǎng)?chuàng)造“sql_yacc.cc”,因?yàn)镸ySQL有一個(gè)已經(jīng)生成的拷貝,然而,如果你確實(shí)需要再創(chuàng)建它,可能會(huì)碰到這個(gè)錯(cuò)誤:
·                "sql_yacc.yy", line xxx fatal: default action causes potential...

這是一個(gè)yacc版本不完善的跡象。你可能需要安裝bison(GNU的yacc)并使用它。

·         在Debian Linux 3.0上, 如果你編譯的MySQL 5.1要支持Berkeley DB,需要安裝gawk代替默認(rèn)的mawk。

·         如果你需要調(diào)試mysqld或MySQL客戶端,運(yùn)行configure,使用--with-debug選項(xiàng),然后重新編譯并且將客戶端程序鏈接到新的客戶端庫。請(qǐng)參見E.2節(jié),“調(diào)試MySQL客戶端”。

·         如果你在Linux(例如,SuSE Linux 8.1或Red Hat Linux 7.3)下遇到類似下面的編譯錯(cuò)誤:

·                libmysql.c:1329: warning: passing arg 5 of `gethostbyname_r' from·                incompatible pointer type·                libmysql.c:1329: too few arguments to function `gethostbyname_r'·                libmysql.c:1329: warning: assignment makes pointer from integer·                without a cast·                make[2]: *** [libmysql.lo] Error 1默認(rèn)情況,configure腳本試圖使用g++ GNU C++編譯器來確定正確的參數(shù)。如果未安裝g++,將會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。有兩種方法可以解決該問題:

o        確保安裝了GNU C++ g++。在某些Linux分發(fā)版上,需要安裝的軟件包叫做gpp;在其它分發(fā)版上名為gcc-c++。

o        使用gcc作為C++ 編譯器,將CXX環(huán)境變量設(shè)置為gcc:

o                     export CXX="gcc"請(qǐng)注意之后需要再次運(yùn)行configure。

論壇徽章:
0
30 [報(bào)告]
發(fā)表于 2008-04-15 11:49 |只看該作者
2.8.5. MIT-pthreads注意事項(xiàng)
這節(jié)描述使用MIT-pthreads時(shí)所涉及的一些問題。

在Linux上,應(yīng)該不使用MIT-pthreads而是安裝LinuxThreads!參見2.12.1節(jié),“Linux注意事項(xiàng)”。

如果你的系統(tǒng)不提供原生的線程支持,將需要使用MIT-pthreads包構(gòu)造MySQL。這包括大多數(shù)FreeBSD系統(tǒng)、SunOS 4.x、Solaris 2.4和更早版本及其它,參見2.1.1節(jié),“MySQL支持的操作系統(tǒng)”。

MIT-pthreads不是MySQL 5.1源碼分發(fā)版的一部分。如果你需要該安裝包,需要單獨(dú)從http://www.mysql.com/Downloads/C ... _beta6-mysql.tar.gz下載。

下載后,將源文件提取到MySQL源碼目錄的頂級(jí)目錄。將創(chuàng)建新的mit-pthreads子目錄。

在大多數(shù)系統(tǒng)上,你能通過使用configure并用--with-mit-threads選項(xiàng)來強(qiáng)迫運(yùn)行MIT-pthreads:
shell> ./configure -- with-mit-threads
當(dāng)使用MIT-pthreads時(shí),不支持在一個(gè)非源碼目錄構(gòu)造,因?yàn)槲覀兿胍刮覀儗?duì)代碼的改變減到最小。

·         決定是否使用MIT-pthreads的檢查僅在處理服務(wù)器代碼的配置過程期間發(fā)生。如果已經(jīng)用--without-server配置了分發(fā)版并只構(gòu)造客戶端代碼,客戶端將不知道MIT-pthreads是否正在被使用并且是否使用 默認(rèn)的Unix套接字連接。因?yàn)樵谀承┢脚_(tái)上Unix套接字文件不能在MIT-pthreads下面工作,這意味著當(dāng)你運(yùn)行客戶端程序時(shí),你需要使用-h或--host。

·         當(dāng)使用MIT-pthreads編譯MySQL時(shí),因?yàn)樾阅茉颍到y(tǒng)鎖定 默認(rèn)為禁止使用。你可以用--external-locking選項(xiàng)告訴服務(wù)器使用系統(tǒng)鎖定。只是在相同數(shù)據(jù)文件上運(yùn)行兩個(gè)MySQL服務(wù)器時(shí)采需要,因此不推薦。

有時(shí)pthreadbind()命令不能綁定一個(gè)套接字但沒有任何錯(cuò)誤消息(至少在Solaris上),結(jié)果是所有到服務(wù)器的連接均失敗。例如:
shell> mysqladmin version
mysqladmin: connect to server at '' failed;
error: 'Can't connect to mysql server on localhost (146)'
解決它的方法是殺死m(xù)ysqld服務(wù)器并且重啟它。這只有當(dāng)我們強(qiáng)迫服務(wù)器停止并馬上進(jìn)行重啟時(shí)在發(fā)生。

使用MIT-pthreads,不能用SIGINT(break)中斷sleep()系統(tǒng)調(diào)用。這只有在運(yùn)行mysqladmin --sleep時(shí)才能注意到。在中斷起作用并且進(jìn)程停止之前必須等待sleep()終止。
當(dāng)鏈接時(shí),你可能會(huì)收到這樣的警告消息(至少在Solaris上);它們可以被忽視:
ld: warning: symbol `_iob' has differing sizes:
    (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
    /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
ld: warning: symbol `__iob' has differing sizes:
    (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
    /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken


一些其它的警告也可被忽略:
implicit declaration of function `int strtoll(...)'
implicit declaration of function `int strtoul(...)'
我們還沒有讓readline在MIT-pthreads上工作。(這不需要,但是可能某些人會(huì)感興趣。)
2.8.6. 在Windows下從源碼安裝MySQL
2.8.6.1. 使用VC++構(gòu)建MySQL
2.8.6.2. 從最新的開發(fā)源碼創(chuàng)建Windows源碼安裝包
下面的說明描述了如何在Windows下從5.1版源碼構(gòu)建MySQL二進(jìn)制。說明用于從包含最新開發(fā)源碼的標(biāo)準(zhǔn)源碼分發(fā)版或從BitKeeper樹來構(gòu)建二進(jìn)制。

注釋:本文檔中的說明嚴(yán)格限于在Windows下從最新源碼分發(fā)版或從BitKeeper樹來測試MySQL的用戶。作為產(chǎn)品使用時(shí),MySQL AB不建議使用你自己從源碼構(gòu)建的MySQL服務(wù)器。一般情況,最好使用MySQL AB預(yù)編譯的對(duì)性能進(jìn)行優(yōu)化的適用Windows的MySQL二進(jìn)制分發(fā)版。安裝二進(jìn)制分發(fā)版的說明參見2.3節(jié),“在Windows上安裝MySQL”。

要想在Windows中從源碼構(gòu)建MySQL,Windows系統(tǒng)中應(yīng)有下面的編譯器和資源:

·         Visual Studio 2003編譯器系統(tǒng)(VC++ 7.0)。

·         3到5GB的硬盤空間。

·         Windows 2000或更高版本。

確切的系統(tǒng)需求見:http://msdn.microsoft.com/vstudi ... ysreqs/default.aspx

還需要適用Windows的MySQL源碼分發(fā)版。有兩種方法可以獲得MySQL 5.1 源碼分發(fā)版:

1.    獲得MySQL AB打包的源碼分發(fā)版軟件包。預(yù)打包的源碼分發(fā)版可從 http://dev.mysql.com/downloads/獲得。

2.    你可以用最新BitKeeper開發(fā)源碼樹構(gòu)建源碼分發(fā)版。如果你計(jì)劃構(gòu)建,必須在Unix系統(tǒng)中創(chuàng)建安裝軟件包,并將它轉(zhuǎn)移到Windows系統(tǒng)。(這樣操作的理由是部分配置和構(gòu)建步驟需要只能在Unix中工作的工具)。BitKeeper方法需要:

·         運(yùn)行Unix或類似Unix的系統(tǒng),例如Linux。

·         該系統(tǒng)上安裝的BitKeeper 3.0。關(guān)于如何下載和安裝BitKeeper的說明參見2.8.3節(jié),“從開發(fā)源碼樹安裝”。

如果你使用Windows源碼分發(fā)版,你可以直接跳到2.8.6.1節(jié),“使用VC++構(gòu)建MySQL”。要想從BitKeeper樹構(gòu)建,繼續(xù)2.8.6.2節(jié),“從最新的開發(fā)源碼創(chuàng)建Windows源碼安裝包”。

如果你發(fā)現(xiàn)某些組件不能按預(yù)料的工作,或者你有好的建議可以改進(jìn)目前的在Windows中的構(gòu)建過程,請(qǐng)向win32郵件列表發(fā)送消息。請(qǐng)參見1.7.1.1節(jié),“The MySQL郵件列表”。

2.8.6.1. 使用VC++構(gòu)建MySQL
注釋:MySQL 4.1和以上版本的VC++工作區(qū)文件與Microsoft Visual Studio 2003版本兼容,MySQL AB人員已經(jīng)在每個(gè)版本之前進(jìn)行了測試。

按照以下步驟構(gòu)建MySQL:

1.    創(chuàng)建工作目錄(例如,C:\ workdir)。

2.    使用WinZip或其它可以讀取.zip文件的Windows工具將源碼分發(fā)版解壓縮到上述目錄。

3.    啟動(dòng)Visual Studio。

4.    從File菜單,選擇Open Workspace。

5.    打開工作目錄中的MySQL.dsw工作區(qū)。

6.    從Build 菜單,選擇Set Active Configuration菜單。

7.    點(diǎn)擊窗口選擇mysqld - Win32 Debug并點(diǎn)擊OK。

8.    按F7開始構(gòu)建調(diào)試服務(wù)器、庫和客戶端應(yīng)用程序。

9.    按同樣方法編譯發(fā)布版本。

10.程序和庫的調(diào)試版本位于client_debug和lib_debug目錄。程序和庫的發(fā)布版本位于client_release和lib_release目錄。請(qǐng)注意如果你想要構(gòu)建調(diào)試版本和發(fā)布版本,可以從Build菜單選擇Build All選項(xiàng)。

11.測試服務(wù)器。使用前面的說明構(gòu)建服務(wù)器時(shí),默認(rèn)MySQL基本目錄和數(shù)據(jù)目錄位于C:\mysql和C:\mysql\data。如果你想要使用源碼樹根目錄和數(shù)據(jù)目錄作為基本目錄和數(shù)據(jù)目錄來測試服務(wù)器,需要告訴服務(wù)器其路徑名?梢栽诿钚杏--basedir和--datadir選項(xiàng)來完成,或?qū)⑾鄳?yīng)選項(xiàng)放入選項(xiàng)文件(在Windows目錄或C:\my.cnf中的my.ini文件)。如果想要使用的數(shù)據(jù)目錄在其它地方,可以指定其路徑名。

12.根據(jù)你想要使用的服務(wù)器,從client_release或client_debug目錄啟動(dòng)服務(wù)器。常用服務(wù)器啟動(dòng)說明見2.3節(jié),“在Windows上安裝MySQL”。如果想要使用其它基本目錄或數(shù)據(jù)目錄,需要相應(yīng)地更改指令。

13.當(dāng)服務(wù)器根據(jù)你的配置獨(dú)立運(yùn)行或作為服務(wù)時(shí),嘗試從client_release或client_debug目錄中的MySQL交互式命令行實(shí)用工具連接它。

如果構(gòu)建的程序工作正常,停止服務(wù)器。按照以下步驟安裝MySQL:

1.    創(chuàng)建安裝MySQL的目錄。例如,要安裝到C:\mysql,使用命令:

2.            C:\> mkdir C:\mysql3.            C:\> mkdir C:\mysql\bin4.            C:\> mkdir C:\mysql\data5.            C:\> mkdir C:\mysql\share6.            C:\> mkdir C:\mysql\scripts如果想要編譯其它客戶端程序并連接到MySQL,你還需要?jiǎng)?chuàng)建幾個(gè)目錄:

C:\> mkdir C:\mysql\includeC:\> mkdir C:\mysql\libC:\> mkdir C:\mysql\lib\debugC:\> mkdir C:\mysql\lib\opt如果想要對(duì)MySQL進(jìn)行基準(zhǔn)檢查,創(chuàng)建目錄:

C:\> mkdir C:\mysql\sql-bench基準(zhǔn)檢查需要Perl支持。請(qǐng)參見2.13節(jié),“Perl安裝注意事項(xiàng)”。

7.    將下面的目錄從workdir目錄復(fù)制到C:\mysql目錄:

8.            C:\> cd \workdir9.            C:\workdir> copy client_release\*.exe C:\mysql\bin10.        C:\workdir> copy client_debug\mysqld.exe C:\mysql\bin\mysqld-debug.exe11.        C:\workdir> xcopy scripts\*.* C:\mysql\scripts /E12.        C:\workdir> xcopy share\*.* C:\mysql\share /E如果想要編譯其它客戶端程序并連接到MySQL,還應(yīng)當(dāng)復(fù)制幾個(gè)庫和頭文件:

C:\workdir> copy lib_debug\mysqlclient.lib C:\mysql\lib\debugC:\workdir> copy lib_debug\libmysql.* C:\mysql\lib\debugC:\workdir> copy lib_debug\zlib.* C:\mysql\lib\debugC:\workdir> copy lib_release\mysqlclient.lib C:\mysql\lib\optC:\workdir> copy lib_release\libmysql.* C:\mysql\lib\optC:\workdir> copy lib_release\zlib.* C:\mysql\lib\optC:\workdir> copy include\*.h C:\mysql\includeC:\workdir> copy libmysql\libmysql.def C:\mysql\include如果你想要對(duì)MySQL進(jìn)行基準(zhǔn)測試,你還應(yīng)當(dāng):

C:\workdir> xcopy sql-bench\*.* C:\mysql\bench /E按照二進(jìn)制Windows分發(fā)版相同的方法設(shè)置并啟動(dòng)服務(wù)器。請(qǐng)參見2.3節(jié),“在Windows上安裝MySQL”。

2.8.6.2. 從最新的開發(fā)源碼創(chuàng)建Windows源碼安裝包
要想從當(dāng)前的BitKeeper源碼樹創(chuàng)建Windows源碼安裝包,使用下面的說明。請(qǐng)注意必須在運(yùn)行Unix或類Unix操作系統(tǒng)的系統(tǒng)上執(zhí)行該過程。例如,已知該過程在Linux上工作得很好。

1.    復(fù)制MySQL 5.1的BitKeeper源碼樹。關(guān)于如何復(fù)制源碼樹的詳細(xì)信息,相關(guān)說明參見2.8.3節(jié),“從開發(fā)源碼樹安裝”。

2.    配置和構(gòu)建分發(fā)版,得到可工作的服務(wù)器二進(jìn)制。實(shí)現(xiàn)的一個(gè)方法是在源碼樹頂級(jí)目錄運(yùn)行下面的命令:

3.            shell> ./BUILD/compile-pentium-max4.    確保構(gòu)建過程成功完成后,從源碼樹頂級(jí)目錄運(yùn)行下面的實(shí)用工具腳本:

5.            shell> ./scripts/make_win_src_distribution該腳本創(chuàng)建在Windows 系統(tǒng)中使用的源碼安裝包?梢愿鶕(jù)你的需求為腳本提供不同的選項(xiàng)。它接受下面的選項(xiàng):

·         --help

顯示幫助消息。

·         --debug

打印關(guān)于腳本操作的信息,不創(chuàng)建包。

·         --tmp

指定臨時(shí)位置。

·         --suffix

安裝軟件包后綴名。

·         --dirname

復(fù)制文件的目錄名(媒介之間)。

·         --silent

不打印正處理文件的詳細(xì)列表。

·         --tar

創(chuàng)建tar.gz安裝軟件包而不是.zip安裝軟件包。

默認(rèn)情況,make_win_src_distribution創(chuàng)建Zip-格式的文件,文件名為mysql-VERSION-win-src.zip,其中VERSION代表MySQL源碼樹的版本。

6.    將創(chuàng)建的Windows源碼安裝包復(fù)制或上載到Windows機(jī)器上。要想編譯,使用2.8.6.1節(jié),“使用VC++構(gòu)建MySQL”中的說明。

2.8.7. 在Windows下編譯MySQL客戶端
在源碼文件中,應(yīng)當(dāng)在MySQL.h之前包括my_global.h:

#include <my_global.h>#include <mysql.h>my_global.h包括你在Windows中編譯程序所需要的Windows兼容文件(例如 windows.h)。

可以將代碼連接到動(dòng)態(tài)libmysql.lib庫,它只是一個(gè)包裝器以便根據(jù)需要裝載libmysql.dll,或連接靜態(tài)mysqlclient.lib庫。

MySQL客戶端庫編譯為線程庫,因此你應(yīng)當(dāng)將代碼編譯為多線程。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP