A.13 MySQL 5.7 FAQ: C API, libmysql

Frequently asked questions about MySQL C API and libmysql.

A.13.1. What is “MySQL Native C API”? What are typical benefits and use cases?
A.13.2. Which version of libmysql should I use?
A.13.3. What if I want to use the “NoSQL” X DevAPI?
A.13.4. How to I download libmysql?
A.13.5. Where is the documentation?
A.13.6. How do I report bugs?
A.13.7. Is it possible to compile the library myself?

A.13.1.

What is MySQL Native C API? What are typical benefits and use cases?

libmysql is a C-based API that you can use in C applications to connect with the MySQL database server. It is also itself used as the foundation for drivers for standard database APIs like ODBC, Perl's DBI, and Python's DB API.

A.13.2.

Which version of libmysql should I use?

For MySQL 8.0, 5.7, 5.6, and 5.5, we recommend libmysql 8.0.

A.13.3.

What if I want to use the NoSQL X DevAPI?

For C-language and X DevApi Document Store for MySQL 8.0, we recommend MySQL Connector/C++. Connector/C++ 8.0 has compatible C headers. (This is not applicable to MySQL 5.7 or before.)

A.13.4.

How to I download libmysql?

A.13.5.

Where is the documentation?

See Section 27.7, “MySQL C API”.

A.13.6.

How do I report bugs?

Please report any bugs or inconsistencies you observe to our Bugs Database . Select the C API Client as shown.

A.13.7.

Is it possible to compile the library myself?

Yes, you can download the libmysqlclient source code and compile it on your own. Here's an example:

$ git clone --depth 1 https://github.com/mysql/mysql-server 
$ cd mysql-server 
$ mkdir build
$ cd build
$ cmake .. -GNinja -DDOWNLOAD_BOOST=1 \
           -DWITH_BOOST=/tmp -DCMAKE_BUILD_TYPE=Release -DWITHOUT_SERVER=ON \
           -DWITH_SSL=system 
$ ninja libmysqlclient.a 
$ ls -la archive_output_directory/libmysqlclient.a 
-rw-rw-r-- 1 kg kg 8,5M wrz 5 04:57 archive_output_directory/libmysqlclient.a

Note

This example uses https://ninja-build.org/ as a build system instead of make.