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数据库

要连接一个服务器上的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数据库的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/273287.html<

(0)
管理的头像管理
上一篇2025-05-09 05:01
下一篇 2025-05-09 05:03

相关推荐

  • 高防服务器的防御原理是什么,如何选择高防服务器?

    高防服务器的防御原理,简单说就是通过流量清洗、防火墙规则和黑洞路由等机制,在攻击流量到达业务服务器之前将其过滤或阻断,从而保障正常访问,流量清洗机制是核心防线高防服务器对抗DDoS攻击,靠的不是单一技术,而是一套组合动作,最常见的攻击类型是流量型攻击,比如UDP洪水、SYN洪水、ICMP放大等,核心思路是耗尽带……

    2026-07-26
    0
  • BGP线路到底是什么意思呢,有什么优势?

    BGP线路是一种通过边界网关协议实现多运营商网络互联的接入方式,能自动选择最优路径,极大提升跨网访问速度和稳定性,是解决国内南北网络瓶颈的核心方案,什么是BGP线路BGP,全称Border Gateway Protocol,边界网关协议,是互联网核心路由协议之一,它负责在自治系统之间交换网络可达性信息,BGP线……

    2026-07-26
    0
  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0
  • 站群服务器一个IP放几个网站合适?,怎么选

    站群服务器一个IP放3-5个网站是大多数情况下的最佳平衡点,但具体数量需根据网站权重、内容质量及IP资源成本灵活调整,这个结论基于搜索引擎对同IP站点的关联判定逻辑,以及站群运营的长期实践,如果你刚接触站群,可能会纠结于IP分配,但核心原则是:不要让搜索引擎轻易识别出这些网站属于同一实体,站群IP分配的底层逻辑……

    2026-07-26
    0
  • DDoS攻击和CC攻击有什么区别,怎么防御?

    DDoS攻击和CC攻击最核心的区别在于攻击目标不同:DDoS攻击主要消耗网络带宽和基础设施资源,而CC攻击专门针对应用层逻辑,耗尽服务器CPU和数据库连接数,两者从原理到防御手段完全不同,攻防视角下的本质差异攻击目标:一个砸门,一个撬锁DDoS攻击(分布式拒绝服务)瞄准的是网络层和传输层,通过大量伪造数据包或畸……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注