MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ g++ -o output-file $(mysql_config --cflags) test.c $(mysql_config --libs)
执行编译后的程序:
$ ./output.file
#include <mysql.h>
#include <stdlib.h>
#include <stdio.h>
static char *server_args[] =
{
"this_program", /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] =
{
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void)
{
if (mysql_server_init(sizeof(server_args) / sizeof(char *),
server_args, server_groups))
exit(1);
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "admin";
char *password = "metrics"; /* 此处改成你的密码 */
char *database = "test";
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
//utput table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
printf ("Number of rows: %lu\n", (unsigned long) mysql_num_rows(res));
MYSQL_FIELD *field;
while ((field = mysql_fetch_field(res)))
{
printf("field name %s\n", field->name);
}
int num_fields = mysql_num_fields(res);
for (int i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("Field %u is %s\n", i, field->name);
}
if (!mysql_set_character_set(conn, "utf8"))
{
MY_CHARSET_INFO cs;
mysql_get_character_set_info(conn, &cs);
printf("character set information:\n");
printf("character set name: %s\n", cs.name);
printf("collation name: %s\n", cs.csname);
printf("comment: %s\n", cs.comment);
printf("directory: %s\n", cs.dir);
printf("multi byte character min. length: %d\n", cs.mbminlen);
printf("multi byte character max. length: %d\n", cs.mbmaxlen);
}
/* close connection */
mysql_free_result(res);
mysql_close(conn);
/* Use any MySQL API functions here */
mysql_server_end();
return EXIT_SUCCESS;
}
分享到:
相关推荐
在Linux(CentOS)系统中,使用C++连接MySQL数据库是一项常见的任务,特别是在开发服务器端应用程序时。这里我们将深入探讨如何实现这一目标,以及在这个过程中可能遇到的关键知识点。 首先,你需要确保你的系统...
在Linux环境下,使用C++与MySQL数据库进行交互是一...以上就是关于“Linux下C++连接MySQL实例”的主要知识点,这只是一个基础的示例,实际开发中可能涉及到更多复杂的功能,如事务处理、预编译语句、游标、批量插入等。
下面将详细讲解如何在C++中连接MySQL,包括使用示例代码和类封装。 首先,为了使用MySQL Connector/C++,你需要在你的项目中包含必要的头文件,并确保已经正确安装了该库。安装后,库文件通常位于`<mysql-connector...
在这个场景下,我们关注的是"C++连接MySQL的相关库和头文件",这通常指的是`MySQL Connector/C++`,这是一个由MySQL官方提供的C++接口,使得C++程序员能够方便地与MySQL数据库进行交互。下面将详细介绍如何在C++项目...
下面是一个完整的示例,展示如何在Linux下用C++连接到MySQL并执行查询: ```cpp #include #include <mysql_driver.h> #include <mysql_connection.h> int main() { sql::mysql::MySQL_Driver *driver; sql...
例如,一个简单的C++连接MySQL并执行查询的示例代码可能如下: ```cpp #include <mysql.h> #include int main() { MYSQL* conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "user", ...
本篇文章将深入探讨如何在Linux环境下实现C++与MySQL的集成,包括安装必要的软件包、连接数据库、执行SQL语句以及处理结果。 1. **环境准备**: - 首先,确保Linux系统上已经安装了MySQL服务,可以通过`sudo ...
在这个名为"MYSQL.zip_C MYSQL_c++ mysql_linux c mysql_linux mys"的压缩包中,包含了一个名为"MYSQL.txt"的文本文件,它很可能提供了关于C或C++编程语言与MySQL数据库进行连接和查询的实例代码。 首先,让我们...
在Linux环境下,C/C++开发数据库连接池是提高应用程序性能和效率的重要技术。数据库连接池是一种管理数据库连接的机制,它允许程序重复使用已建立的数据库连接,而不是每次需要时都创建新的连接。这减少了创建和销毁...
在测试代码中,通常会包含示例场景,如连接到本地的MySQL服务器,创建表,插入数据,执行查询,更新记录,以及断开连接等操作,以验证封装类的功能完整性。 在提供的`_mysql_cpp_`压缩包中,可能包含以下文件: 1....
在Linux环境下,使用C++操作MySQL数据库是一种常见的需求,特别是在开发跨平台的应用程序时。本文将详细介绍如何通过MySQL的C API来实现这一功能。 首先,连接MySQL数据库的关键函数是`mysql_real_connect()`。这个...
6. **开发示例**:安装完MySQL-devel后,开发者就可以利用提供的头文件和库文件创建MySQL连接。例如,使用`mysql.h`头文件和`libmysqlclient.a`库文件,可以编写C或C++程序,使用`mysql_connect()`等函数与MySQL...
这个SDK包含了头文件、库文件以及必要的示例代码,帮助开发者理解如何在C++项目中集成MySQL功能。 3. **连接数据库** 使用MySQL Connector/C++,开发者可以创建数据库连接,通过提供服务器地址、用户名、密码和...
本资源包含Linux下MySQL的库文件、头文件以及一个调用MySQL API的示例程序,这将帮助我们理解如何在C/C++中连接并操作MySQL数据库。 首先,MySQL的库文件(通常以`.so`动态链接库或`.a`静态链接库形式存在)是C/C++...
在Linux环境下,使用Eclipse集成开发环境(IDE)进行C/C++编程时,有时需要实现与MySQL数据库的交互功能。这通常涉及到如何在Eclipse中正确配置C/C++项目以支持MySQL库的链接。本文将详细介绍如何在Eclipse中配置C语言...
本文将深入探讨如何在Linux下用C++编写连接数据库的程序,并附上编译命令。 首先,C++连接数据库通常依赖于特定的库,如MySQL Connector/C++、PostgreSQL的libpqxx或SQLite3的API。以MySQL为例,你需要安装MySQL的...
此资源是MySQL Connector/C++ 8.0.15的源代码版本,专为Linux操作系统设计。这个压缩包包含了构建、理解和修改这个连接器所需的所有源代码。 MySQL Connector/C++遵循了C++的SQL API(CLI,Client Library ...
本篇文章将深入探讨如何在C++中封装MySQL接口,并通过一个名为"test"的简单调用示例进行解释。 首先,我们需要了解C++中的面向对象编程(OOP)概念,这是封装的基础。在C++中,封装意味着将数据和操作这些数据的...
你可以通过`mysql`命令行客户端连接到服务器: ```bash sudo /usr/local/mysql/bin/mysql -u root ``` 至此,你已经完成了在Linux环境下编译安装MySQL 5.6.29的全过程。编译安装虽然比使用软件包管理器复杂,但它...
在C++代码中,使用`mysql_init()`初始化连接,`mysql_real_connect()`建立连接,`mysql_query()`执行SQL语句,最后用`mysql_close()`关闭连接。 6. **MySQL存储过程**: - 在MySQL客户端中,可以创建存储过程,如...