C语言操作MySQL数据库服务器 (c mysql数据库服务器)

随着大数据和等新技术的快速发展,数据已经成为当今社会的重要基础。而数据库作为数据存储的重要工具,由此也变得越来越受欢迎。MySQL作为一种常用的数据库管理系统,已经被广泛应用于各种Web应用中,如开源CMS(内容管理系统)和博客系统。

在本文中,我们将介绍如何使用。这个过程涉及到安装MySQL、安装MySQL的C语言API库和通过代码连接MySQL服务器、创建表、查询、插入、更新等操作。

之一步:安装MySQL

在C语言中操作MySQL数据库前,需要先安装MySQL服务器。MySQL支持多种操作系统平台。本文以CentOS 7系统为例,介绍MySQL的安装方法。

通过以下命令安装MySQL:

“`

sudo yum install mysql-server

“`

安装完成后,可以通过以下命令启动MySQL服务器:

“`

sudo systemctl start mysqld

“`

要想MySQL服务器在启动时自动启动,可以使用以下命令:

“`

sudo systemctl enable mysqld

“`

如果需要停止MySQL服务器,可以使用以下命令:

“`

sudo systemctl stop mysqld

“`

第二步:安装MySQL的C语言API库

要在C语言中操作MySQL,需要使用MySQL的C语言API库。以下是在CentOS 7系统上安装MySQL的C语言API库的步骤。

通过以下命令安装MySQL的开发文件:

“`

sudo yum install mysql-devel

“`

安装完成后,配置gcc编译器的环境变量:

“`

export C_INCLUDE_PATH=/usr/include/mysql/

“`

第三步:连接MySQL服务器

在C语言中操作MySQL数据库,需要使用MySQL的C语言API库。以下是一个连接MySQL服务器的示例程序:

“`c

#include

#include

#include

#define HOST “localhost”

#define USER “root”

#define PASS “password”

int mn()

{

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server = HOST;

char *user = USER;

char *password = PASS;

char *database = “test”;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

if (mysql_query(conn, “show tables”)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

res = mysql_use_result(conn);

printf(“MySQL Tables in mysql database:\n”);

while ((row = mysql_fetch_row(res)) != NULL)

printf(“%s \n”, row[0]);

mysql_free_result(res);

mysql_close(conn);

return 0;

}

“`

在上述的程序中,我们首先要使用MySQL的C语言API库,然后通过mysql_init函数初始化MySQL连接。这个时候就可以通过mysql_real_connect函数连接MySQL服务器。如果连接MySQL服务器失败,则打印错误信息。

如果连接服务器成功,则可以通过mysql_query函数执行任意SQL语句。在这个例子中,我们执行了“show tables”命令。

调用mysql_use_result函数后,将在res中得到结果集。将结果通过mysql_row函数打印出来。

我们使用mysql_free_result函数释放结果集并关闭MySQL连接。

第四步:创建表

要在C语言中创建MySQL表,以下是示例代码:

“`c

#include

#include

#include

#define HOST “localhost”

#define USER “root”

#define PASS “password”

int mn()

{

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server = HOST;

char *user = USER;

char *password = PASS;

char *database = “test”;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

if (mysql_query(conn, “CREATE TABLE example (id INT(11), name VARCHAR(20))”)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

mysql_close(conn);

exit(1);

}

mysql_close(conn);

return 0;

}

“`

在上述程序中,我们使用mysql_query函数并执行SQL语句“CREATE TABLE example (id INT(11), name VARCHAR(20))”。然后关闭MySQL连接。

第五步:插入数据

要在C语言中向MySQL表中插入数据,以下是一个示例程序:

“`c

#include

#include

#include

#define HOST “localhost”

#define USER “root”

#define PASS “password”

int mn()

{

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server = HOST;

char *user = USER;

char *password = PASS;

char *database = “test”;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

if (mysql_query(conn, “INSERT INTO example (id, name) VALUES(‘1’, ‘Maria’)”)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

mysql_close(conn);

exit(1);

}

mysql_close(conn);

return 0;

}

“`

在上述程序中,我们使用mysql_query函数并执行SQL语句“INSERT INTO example (id, name) VALUES(‘1’, ‘Maria’)”。然后关闭MySQL连接。

第六步:更新数据

在C语言中可以通过以下方式更新MySQL表中的数据:

“`c

#include

#include

#include

#define HOST “localhost”

#define USER “root”

#define PASS “password”

int mn()

{

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server = HOST;

char *user = USER;

char *password = PASS;

char *database = “test”;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

if (mysql_query(conn, “UPDATE example SET name=’Mary’ WHERE id=’1′”)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

mysql_close(conn);

exit(1);

}

mysql_close(conn);

return 0;

}

“`

在上述程序中,我们使用mysql_query函数并执行SQL语句“UPDATE example SET name=’Mary’ WHERE id=’1’”。然后关闭MySQL连接。

第七步:查询数据

要在C语言中查询MySQL表中的数据,以下是一个示例程序:

“`c

#include

#include

#include

#define HOST “localhost”

#define USER “root”

#define PASS “password”

int mn()

{

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

char *server = HOST;

char *user = USER;

char *password = PASS;

char *database = “test”;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

if (mysql_query(conn, “SELECT * FROM example”)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

mysql_close(conn);

exit(1);

}

res = mysql_use_result(conn);

printf(“MySQL Tables in mysql database:\n”);

while ((row = mysql_fetch_row(res)) != NULL)

printf(“%s %s\n”, row[0], row[1]);

mysql_free_result(res);

mysql_close(conn);

return 0;

}

“`

在上述程序中,我们使用mysql_query函数并执行SQL语句“SELECT * FROM example”。然后通过mysql_use_result函数和mysql_fetch_row函数依次得到结果集的每一行数据并打印出来。最后释放结果集并关闭MySQL连接。

结论

相关问题拓展阅读:

怎么链接一个服务器上的mysql数据库

要连接一个服务器上的mysql数据库首先需要知道这个服务器李数的ip地址、mysql数据库的用户名和哪孝首密码还有端口号(默认是3306)。然后通过Navicat Premium这个软件来完成,具体步骤如下:

步骤1:电脑上安装Navicat Premium(可以百度搜索“Navicat Premium”然后下载)

步骤2:安装完毕,打开Navicat Premium,点击“连接”,然后下拉选择“MySQL”

步骤3:打开MySQL的新建连接界面,然后给连接取个名字并输入已知MySQL数据库所在服务器的IP地址、数据库端口(默认3306)、用户名、密码,确保没问题之后点击“测试连接”,如果提示“连接成功”,则说明输入的各项参数是正确的。

步骤4:测试通过之后点击“确定”,即可成功连接服务器上面的MySQL数据库,在里面就可以面各慎备个数据库的数据了。

1. 假设192.168.1.3为服务器

2. 首先在ip为192.168.1.103的机子上能够ping 通

运行->cmd

>ping 192.168.1.3

检查是否能ping通

3. 把两台电脑的IP设置在同一个网段, 如:192.168.1.2 ,192.168.1.3。。返拍。。。

子网:255.255.255.0 网关:192.168.1.1

4. 在MySQL服务器上增加新用户,

增加新用户的方法:

在服务器端

Mysql> grant select,delete,update,insert on zhaozhen.* to ‘zhen’@’192.168.1.103’identified by ‘123’;

在192.168.1.103 这台机子上可以通过用户名 :zhen 密码为123 对数据库zhaozhen 进行操作!

//怎样删除增加的新用户的访问权限

Mysql > Revokeselect,delete,update,insert on zhaozhen.* from’zhen’@’192.168.1.103’;

也就是收回192.168.1.103 机子访问的权利。

并输入主机名称:192.168.1.3 ,添加完毕后就能够在IP地址为192.168.1.103的电脑上,连接另一台192.168.1.3上的MYSQL服务器。

5、访问:cd C:\Program Files\MySQL\MySQL Server 5.0\bin

C:\program Files\MYSQL Server 5.0\bin >mysql –h 192.168.1.3 –uzhen –p 123

则进入访问192.168.1.3 上的mysql数据库。

6、下面是说自己写的程序通过ADO访问Mysql数据库,用在不同的机器上。

在另一台机子上也是用数据源进行连桐世闹接测试的,和在本机时一样,只是将服务器给为mysql服务器的!

使用的DataBaseConfiguration程序进行测试的,直接在使用时,将server改为192.168.3.212(以上时192.168.1.3由于后来机器ip地址更换的原因)局罩,user 为zhen ,

Password :123 ,database :zhaozhen 即可访问。

也就是说在客户端用ADO 方式访问服务器端的Mysql数据库时,仍然需要有在客户端安装mysql—connector—odbc也就是数据源链接。至于在

使用的config.ini ,在程序中完成的对其修改,而在修改之后,会将其存储在C:\Program Files\Common Files\ODBC\Data Sources 文件夹下。 //需要修改的地方。

//寻找存储路径

后来在上面需要修改的地方添加了获得当前路径函数,实现

CString CSysPath::GetSysPath(CStringfileName)

{

TCHARexeFullPath;

GetModuleFileName(NULL,exeFullPath,MAX_PATH);

CStringszfolder = exeFullPath;

int pos = szfolder.ReverseFind(‘\\’);

szfolder= szfolder.Left(pos);

pos= szfolder.ReverseFind(‘D’);

szfolder= szfolder.Left(pos);

szfolder+= fileName;

return szfolder;

}

入参:要查找的文件名

返回值:要查找的文件路径

1、mysql数据库(例如192.168.1.1)需要创建允许远程访问的用户。可以指定IP或允许所有IP

2、例如#创建数据库,允许user01在灶手掘192.168.1.5访问

mysql -uroot -pe”create database db01″

#创建用户

mysql -uroot -pe”CREATE USER ‘user01’@’192.168.1.5’ IDENTIFIED BY ‘123456’;”

mysql -uroot -pe”GRANT ALL ON db01.* TO ‘user01’@’192.168.1.5’;”

3、例如薯芦#创建数据隐核库,允许user01在%(任意IP)访问

mysql -uroot -pe”CREATE USER ‘user01’@’%’ IDENTIFIED BY ‘123456’;”

mysql -uroot -pe”GRANT ALL ON db01.* TO ‘user01’@’%’;”

4、查询user和相应host

select user,host from user;

5、远程访问mysql测试

c mysql数据库服务器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c mysql数据库服务器,C语言操作MySQL数据库服务器,怎么链接一个服务器上的mysql数据库的信息别忘了在本站进行查找喔。


数据运维技术 » C语言操作MySQL数据库服务器 (c mysql数据库服务器)