此文章记录C语言连接Mysql数据库
环境:
虚拟机主机:Ubuntu
服务器Centos 7:
Mysql版本:5.7.35
前人文章:
https://blog.csdn.net/haduwi/article/details/117586110
前车之鉴,后车之师
前人栽树,后人乘凉,//一直凉,容易冻死
/
虚拟机别用net,保证虚拟机和主机都在同一个网段,ping通
centos 7上安装lamp套件或者安装单独的mysql软件包,安装完成后创建快照。
mysql默认端口3306,我更改为5555,不改也可以,防扫。
ubuntu主机和centos7 服务器都需要安装vmtools
以下是在centos 7中安装vmtools步骤:
https://blog.csdn.net/zhujing16/article/details/88677253
安装vmtools成功。
/
c语言连接mysql必须要mysql安装目录下的mysql.h 头文件夹,直接把整个include文件夹都拿出来
配置linux共享文件夹(好像不用vmtools也能配置共享文件夹)
先给/mnt/hgfs权限+755,查看教程:
https://zhuanlan.zhihu.com/p/110749797
配置成功.
把c语言文件和mysql的include文件夹配置到同一目录下。
/
此代码对main.c主文件进行编译生成test可执行文件
gcc -g main.c -l mysqlclient -o test
解决方法:安装文中的两个软件
https://www.cnblogs.com/nanfengnan/p/14725292.html
连接mysqly时关闭centos7的防火墙:
https://blog.csdn.net/qq_42008300/article/details/121151546
开启mysql
https://blog.csdn.net/xufengzhu/article/details/81110982
图形化界面连接mysql,方便操作,使用了软件Navicat Pre
/
C语言相关知识:
局部指针类型的变量return时:
当函数退出后,局部变量会被销毁,这意味着返回的指针将指向一个不再有效的内存位置。
要避免这个问题,你可以使用动态内存分配(堆内存),而不是使用局部变量。这样,在函数退出后,内存仍然是有效的。以下是一个示例,演示如何在堆内存中分配一个 MYSQL 结构,然后返回指向它的指针:
my_connection = (MYSQL *)malloc(sizeof(MYSQL)); /*数据库连接*/
遇到陌生的函数,跳转定义看看,看返回值类型
如果在别的主机上运行./test可执行文件,需要安装已下软件:
sudo apt-get install libmysqlclient-dev
/
以下是部分效果图:
部分代码截图
数据库部分截图:
如需源代码请私信,或者添加QQ:2408454121