您需要下列工具才能在 Unix 上從原始碼建置 MySQL
可運作的 ANSI C++ 編譯器。已知 GCC 4.2.1 或更新版本、Sun Studio 12.1 或更新版本,以及許多目前廠商提供的編譯器皆可運作。
CMake。
MySQL 用戶端程式庫和 include 檔案。若要取得用戶端程式庫和 include 檔案,請瀏覽 https://dev.mysql.com.tw/downloads/。
必須安裝相容的 ODBC 管理員。已知 Connector/ODBC 可與
iODBC和unixODBC管理員搭配運作。如需更多資訊,請參閱 第 3.2 節,「ODBC 驅動程式管理員」。如果您使用的字元集未編譯到 MySQL 用戶端程式庫中,請將
charsets目錄中的 MySQL 字元定義安裝到SHAREDIR(預設為/usr/local/mysql/share/mysql/charsets)。如果您已在同一部電腦上安裝 MySQL 伺服器,則這些應該已就緒。如需更多字元集支援的資訊,請參閱 字元集、定序、Unicode。
在您擁有所有必要檔案後,將原始碼檔案解壓縮到一個單獨的目錄,然後執行 cmake 並使用下列命令
$> cmake -G "Unix Makefiles"
常見的 cmake 參數和選項
您可能需要協助 cmake 找到 MySQL 標頭和程式庫,方法是將環境變數 MYSQL_INCLUDE_DIR、MYSQL_LIB_DIR 和 MYSQL_DIR 設定為適當的位置;例如
$> export MYSQL_INCLUDE_DIR=/usr/local/mysql/include
$> export MYSQL_LIB_DIR=/usr/local/mysql/lib
$> export MYSQL_DIR=/usr/local/mysql
當您執行 cmake 時,您可能會將選項新增至命令列。以下是一些範例
-DODBC_INCLUDES=:當系統dir_name$PATH中找不到 ODBC include 目錄時使用。-DODBC_LIB_DIR=:當系統dir_name$PATH中找不到 ODBC 程式庫目錄時使用。-DWITH_UNIXODBC=:啟用 unixODBC 支援。1iODBC是從 Linux 平台上的原始碼建置 Connector/ODBC 時使用的預設 ODBC 程式庫。或者,可以將此選項設定為 “1” 來使用unixODBC。-DMYSQLCLIENT_STATIC_LINKING=靜態連結至 MySQL 用戶端程式庫。預設會選取與 MySQL 用戶端程式庫的動態連結,也就是說,boolean:MYSQLCLIENT_STATIC_LINKINGcmake 選項預設為FALSE(但是,Oracle 提供的 Connector/ODBC 二進位發行版本會靜態連結至用戶端程式庫)。如果您想要靜態連結至 MySQL 用戶端程式庫,請將選項設定為TRUE。另請參閱-DMYSQLCLIENT_LIB_NAME=選項的描述。client_lib_name_with_extension-DBUNDLE_DEPENDENCIES=:啟用後,會將外部程式庫執行階段相依性 (例如 OpenSSL) 與連接器一起安裝。對於繼承自 MySQL 用戶端程式庫的相依性,只有在這些相依性與用戶端程式庫本身捆綁在一起時,此選項才有效。此選項已在 v8.0.11 中新增。boolean-DMYSQLCLIENT_LIB_NAME=:MySQL 用戶端程式庫的位置。請參閱client_lib_name_with_extensionMYSQLCLIENT_STATIC_LINKING的描述。若要靜態連結至 MySQL 用戶端程式庫,請使用此選項來提供用戶端程式庫的名稱,以進行靜態連結。如果您想要動態連結至libmysqlclient.so以外的 MySQL 用戶端程式庫,也請使用此選項。cmake 會在環境變數MYSQL_LIB_DIR指定的位置下尋找用戶端程式庫;如果未指定變數,cmake 會在環境變數MYSQL_DIR指定的資料夾內的預設位置下尋找。-DMYSQL_CONFIG_EXECUTABLE=:指定公用程式 mysql_config 的位置,此公用程式用於擷取變數/path/to/mysql_configMYSQL_INCLUDE_DIR、MYSQL_LIB_DIR、MYSQL_LINK_FLAGS和MYSQL_CXXFLAGS的值。mysql_config 擷取的值會被直接提供給 cmake 作為參數的值覆寫。-DMYSQL_EXTRA_LIBRARIES=dependencies:當靜態連結 MySQL 用戶端程式庫 (-DMYSQLCLIENT_STATIC_LINKING=ON) 且設定 MYSQL_LIB_DIR 和 MYSQL_INCLUDE_DIR 時 (以便不使用 mysql_config 偵測設定),請使用此選項來定義用戶端程式庫所需的相依性清單。-DMYSQL_LINK_FLAGS=MySQL 連結旗標-DMYSQL_CXXFLAGS=MySQL C++ 連結旗標-
-DMYSQL_CXX_LINKAGE=1:啟用與 MySQL 客戶端函式庫的 C++ 連結。預設情況下,對於 MySQL 5.6.4 或更新版本,會啟用MYSQL_CXX_LINKAGE。對於 MySQL 5.6.3 和更早版本,必須明確將此選項設定為1。
Unix 上的建置步驟
要建置驅動程式函式庫,請執行 make
$> make
如果發生任何錯誤,請更正它們並繼續建置程序。如果您無法完成建置,請參閱第 9.1 節「Connector/ODBC 社群支援」。
安裝驅動程式函式庫
要安裝驅動程式函式庫,請執行以下命令
$> make install
有關建置程序的更多資訊,請參閱來源發行版本隨附的 BUILD 檔案。
在 Unix 上測試 Connector/ODBC
在發行版本中提供了與您建置的函式庫一起使用的一些 Connector/ODBC 測試。要執行測試
請確保您已準備好
odbc.ini檔案,您可以使用該檔案來設定 DSN 項目。建置程序會在test資料夾下產生範例odbc.ini檔案。將環境變數ODBCINI設定為您的odbc.ini檔案的位置。在您的
odbc.ini檔案中設定測試 DSN (詳情請參閱第 5.5 節「在 Unix 上設定 Connector/ODBC DSN」)。您可以在範例odbc.ini檔案中找到可用於測試的範例 DSN 項目。將環境變數
TEST_DSN設定為您的測試 DSN 的名稱。根據需要,將環境變數
TEST_UID以及可能還有TEST_PASSWORD設定為測試的使用者名稱和密碼。預設情況下,測試使用 「root」 作為使用者,並且不輸入密碼;如果您希望測試使用其他使用者名稱或密碼,請相應地設定TEST_UID和TEST_PASSWORD。請確保您的 MySQL 伺服器正在執行。
-
執行以下命令
$> make test