您需要下列工具才能在 Unix 上從原始碼建置 MySQL
可運作的 ANSI C++ 編譯器。已知 GCC 4.2.1 或更新版本、Sun Studio 12.1 或更新版本,以及許多目前廠商提供的編譯器皆可運作。
CMake。
MySQL 用戶端程式庫和 include 檔案。若要取得用戶端程式庫和 include 檔案,請瀏覽 https://mysqldev.dev.org.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 支援。1
iODBC
是從 Linux 平台上的原始碼建置 Connector/ODBC 時使用的預設 ODBC 程式庫。或者,可以將此選項設定為 “1” 來使用unixODBC
。-DMYSQLCLIENT_STATIC_LINKING=
靜態連結至 MySQL 用戶端程式庫。預設會選取與 MySQL 用戶端程式庫的動態連結,也就是說,boolean
:MYSQLCLIENT_STATIC_LINKING
cmake 選項預設為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_extension
MYSQLCLIENT_STATIC_LINKING
的描述。若要靜態連結至 MySQL 用戶端程式庫,請使用此選項來提供用戶端程式庫的名稱,以進行靜態連結。如果您想要動態連結至libmysqlclient.so
以外的 MySQL 用戶端程式庫,也請使用此選項。cmake 會在環境變數MYSQL_LIB_DIR
指定的位置下尋找用戶端程式庫;如果未指定變數,cmake 會在環境變數MYSQL_DIR
指定的資料夾內的預設位置下尋找。-DMYSQL_CONFIG_EXECUTABLE=
:指定公用程式 mysql_config 的位置,此公用程式用於擷取變數/path/to/mysql_config
MYSQL_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