mysql_config provides you with useful information for compiling your MySQL client and connecting it to MySQL. It is a shell script, so it is available only on Unix and Unix-like systems.
pkg-config can be used as an alternative to mysql_config for obtaining information such as compiler flags or link libraries required to compile MySQL applications. For more information, see Building C API Client Programs Using pkg-config.
mysql_config supports the following options.
- --cflags C Compiler flags to find include files and critical compiler flags and defines used when compiling the libmysqlclient library. The options returned are tied to the specific compiler that was used when the library was created and might clash with the settings for your own compiler. Use --include for more portable options that contain only include paths.
- --cxxflags Like --cflags, but for C++ compiler flags.
- --include Compiler options to find MySQL include files.
- --libs Libraries and options required to link with the MySQL client library.
- --libs_r Libraries and options required to link with the thread-safe MySQL client library. In MySQL 8.0, all client libraries are thread-safe, so this option need not be used. The --libs option can be used in all cases.
- --plugindir The default plugin directory path name, defined when configuring MySQL.
- --port The default TCP/IP port number, defined when configuring MySQL.
- --socket The default Unix socket file, defined when configuring MySQL.
- --variable=var_name Display the value of the named configuration variable. Permitted var_name values are pkgincludedir (the header file directory), pkglibdir (the library directory), and plugindir (the plugin directory).
- --version Version number for the MySQL distribution.
If you invoke mysql_config with no options, it displays a list of all options that it supports, and their values:
$> mysql_config Usage: /usr/local/mysql/bin/mysql_config [options] Options: --cflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro] --cxxflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro] --include [-I/usr/local/mysql/include/mysql] --libs [-L/usr/local/mysql/lib/mysql -lmysqlclient -lpthread -lm -lrt -lssl -lcrypto -ldl] --libs_r [-L/usr/local/mysql/lib/mysql -lmysqlclient_r -lpthread -lm -lrt -lssl -lcrypto -ldl] --plugindir [/usr/local/mysql/lib/plugin] --socket [/tmp/mysql.sock] --port  --version [5.8.0-m17] --variable=VAR VAR is one of: pkgincludedir [/usr/local/mysql/include] pkglibdir [/usr/local/mysql/lib] plugindir [/usr/local/mysql/lib/plugin]
You can use mysql_config within a command line using backticks to include the output that it produces for particular options. For example, to compile and link a MySQL client program, use mysql_config as follows:
gcc -c `mysql_config --cflags` progname.c gcc -o progname progname.o `mysql_config --libs`
Copyright © 1997, 2023, Oracle and/or its affiliates.
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
Building C API Client Programs Using pkg-config
For more information, please refer to the MySQL Reference Manual, which may already be installed locally and which is also available online at http://dev.mysql.com/doc/.
Oracle Corporation (http://dev.mysql.com/).