You need the following tools to build MySQL from source on Unix:
- A working ANSI C++ compiler. GCC 4.2.1 or later, Sun Studio 12.1 or later, and many current vendor-supplied compilers are known to work. 
- CMake. 
- MySQL client libraries and include files. To get the client libraries and include files, visit https://dev.mysql.com/downloads/. 
- A compatible ODBC manager must be installed. Connector/ODBC is known to work with the - iODBCand- unixODBCmanagers. See Section 3.2, “ODBC Driver Managers” for more information.
- If you are using a character set that is not compiled into the MySQL client library, install the MySQL character definitions from the - charsetsdirectory into- SHAREDIR(by default,- /usr/local/mysql/share/mysql/charsets). These should be in place if you have installed the MySQL server on the same machine. See Character Sets, Collations, Unicode for more information on character set support.
Once you have all the required files, unpack the source files to a separate directory, then run cmake with the following command:
$> cmake -G "Unix Makefiles"
Typical cmake Parameters and Options
        You might need to help cmake find the MySQL
        headers and libraries by setting the environment variables
        MYSQL_INCLUDE_DIR,
        MYSQL_LIB_DIR, and
        MYSQL_DIR to the appropriate locations; for
        example:
      
$> export MYSQL_INCLUDE_DIR=/usr/local/mysql/include
$> export MYSQL_LIB_DIR=/usr/local/mysql/lib
$> export MYSQL_DIR=/usr/local/mysqlWhen you run cmake, you might add options to the command line. Here are some examples:
- -DODBC_INCLUDES=: Use when the ODBC include directory is not found within the system- dir_name- $PATH.
- -DODBC_LIB_DIR=: Use when the ODBC library directory is not found within the system- dir_name- $PATH.
- -DWITH_UNIXODBC=: Enables unixODBC support.- 1- iODBCis the default ODBC library used when building Connector/ODBC from source on Linux platforms. Alternatively,- unixODBCmay be used by setting this option to “1”.
- -DMYSQLCLIENT_STATIC_LINKING=Link statically to the MySQL client library. Dynamic linking with the MySQL client library is selected by default—that is, the- boolean:- MYSQLCLIENT_STATIC_LINKINGcmake option is- FALSEby default (however, the binary distributions of Connector/ODBC from Oracle are linked statically to the client library). If you want to link statically to the MySQL client library, set the option to- TRUE. See also the description for the- -DMYSQLCLIENT_LIB_NAME=option.- client_lib_name_with_extension
- -DBUNDLE_DEPENDENCIES=: Enable to install external library runtime dependencies, such as OpenSSL, together with the connector. For dependencies inherited from the MySQL client library, this only works if these dependencies are bundled with the client library itself. Option added in v8.0.11.- boolean
- -DMYSQLCLIENT_LIB_NAME=: Location of the MySQL client library. See the description for- client_lib_name_with_extension- MYSQLCLIENT_STATIC_LINKING. To link statically to the MySQL client library, use this option to supply the client library's name for static linking. Also use this option If you want to link dynamically to a MySQL client library other than- libmysqlclient.so. cmake looks for the client library under the location specified by the environment variable- MYSQL_LIB_DIR; if the variable is not specified, cmake looks under the default locations inside the folder specified by the environment variable- MYSQL_DIR.
- -DMYSQL_CONFIG_EXECUTABLE=: Specifies location of the utility mysql_config, which is used to fetch values of the variables- /path/to/mysql_config- MYSQL_INCLUDE_DIR,- MYSQL_LIB_DIR,- MYSQL_LINK_FLAGS, and- MYSQL_CXXFLAGS. Values fetched by mysql_config are overridden by values provided directly to cmake as parameters.
- -DMYSQL_EXTRA_LIBRARIES=- dependencies: When linking the MySQL client library statically (-DMYSQLCLIENT_STATIC_LINKING=ON) and when setting MYSQL_LIB_DIR and MYSQL_INCLUDE_DIR (so that the mysql_config is not used to detect settings), use this to define a list of dependencies required by the client library.
- -DMYSQL_LINK_FLAGS=- MySQL link flags
- -DMYSQL_CXXFLAGS=- MySQL C++ linkage flags
- 
-DMYSQL_CXX_LINKAGE=1: Enables C++ linkage to MySQL client library. By default,MYSQL_CXX_LINKAGEis enabled for MySQL 5.6.4 or later. For MySQL 5.6.3 and earlier, this option must be set explicitly to1.
Build Steps for Unix
To build the driver libraries, execute make:
$> makeIf any errors occur, correct them and continue with the build process. If you are not able to finish the build, see Section 9.1, “Connector/ODBC Community Support”.
Installing Driver Libraries
To install the driver libraries, execute the following command:
$> make install
        For more information on build process, refer to the
        BUILD file that comes with the source
        distribution.
      
Testing Connector/ODBC on Unix
Some tests for Connector/ODBC are provided in the distribution with the libraries that you built. To run the tests:
- Make sure you have an - odbc.inifile in place, by which you can configure your DSN entries. A sample- odbc.inifile is generated by the build process under the- testfolder. Set the environment variable- ODBCINIto the location of your- odbc.inifile.
- Set up a test DSN in your - odbc.inifile (see Section 5.5, “Configuring a Connector/ODBC DSN on Unix” for details ). A sample DSN entry, which you can use for your tests, can be found in the sample- odbc.inifile.
- Set the environment variable - TEST_DSNto the name of your test DSN.
- Set the environment variable - TEST_UIDand perhaps also- TEST_PASSWORDto the user name and password for the tests, if needed. By default, the tests use “root” as the user and do not enter a password; if you want the tests to use another user name or password, set- TEST_UIDand- TEST_PASSWORDaccordingly.
- Make sure that your MySQL server is running. 
- 
Run the following command: $> make test