一、安装Mysql在Ubuntu16.04
sudo apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
检查安装的正常与否:
sudo netstat -tap | grep mysql
卸载mysql环境:
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremovemysql-server
sudo apt-get remove mysql-common dpkg -l | grep ^rc| awk '{print $2}' | sudo xargs dpkg -P
重启mysql服务:
sudo/etc/init.d/mysql restart 或 sudo service mysql restart
客户端连接:
mysql -h127.0.0.1 -uroot -p
二、MySQL相关结构体
ubuntu环境下需安装:libmysqlclient-dev
/usr/include/mysql/mysql.h -- mysql头文件
函数原型与结构体
1.MYSQL *mysql_init(MYSQL *mysql)
2.MYSQL *mysql_real_connect(MYSQL *mysql,
3.int mysql_query(MYSQL *mysql, const char *stmt_str)
4.MYSQL_RES *mysql_use_result(MYSQL *mysql)
5.MYSQL_RES *mysql_store_result(MYSQL *mysql)
6.MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
7.void mysql_free_result(MYSQL_RES *result)
8.void mysql_close(MYSQL *mysql);
MYSQL, MYSQL_RES, MYSQL_ROW, MYSQL_FIELD, MYSQL_FIELD_OFFSET
三、测试代码
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,const char* argv[])
{
int i = 0;
MYSQL* sqlHandler = NULL;
MYSQL_RES *sqlRes = NULL;
MYSQL_ROW row;
char server[] = "192.168.2.111";
char user[] = "Leonard";
char passwd[] = "xxxxxxx";
char database[] = "mysql-test";
char sqlCond[128] = {0};
sqlHandler = mysql_init(NULL);
if (!mysql_real_connect(sqlHandler,server,user,passwd,database,0,NULL,0))
{
printf("MySQL init error: %s : %d\n",mysql_error(sqlHandler),mysql_errno(sqlHandler));
return -1;
}
sprintf(sqlCond, "insert into User_info(`name`,`class`)values('Even', 'Grama');");
if(mysql_query(sqlHandler, sqlCond)){
printf("MySQL Query error: %s\n",mysql_error(sqlHandler));
}
sprintf(sqlCond, "select * from User_info");
if(mysql_query(sqlHandler, sqlCond)){
printf("MySQL Query error: %s\n",mysql_error(sqlHandler));
}
sqlRes = mysql_use_result(sqlHandler);
if(!sqlRes)
{
printf("mysql_fetch_row error: %s\n",mysql_error(sqlHandler));
}
while((row = mysql_fetch_row(sqlRes)) != NULL)
{
for(i = 0; i < mysql_num_fields(sqlRes); i++)
printf("%s\t", row[i]);
printf("\n");
}
mysql_free_result(sqlRes);
mysql_close(sqlHandler);
sqlHandler = NULL;
sqlRes = NULL;
return 0;
}
四、编译及其测试
gcc -Wall mysql_test.c -o mysql_test -lmysqlclient
结语:
路遥需前行,皆是修行。