34安装+连接数据库
在Ubuntu下安装Mysql.
ubuntu上安装mysql非常简单只需要几条命令就可以完成。
1. sudo apt-get install mysql-server
2. apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev
可能出现的问题:
letuknowit@ubuntu:~$ sudo apt-get install mysql-server mysql-client
[sudo] password for letuknowit:
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package mysql-server
E: Unable to locate package mysql-client
letuknowit@ubuntu:~$
解决方法执行下面的命令:
sudo apt-get update
再进行安装。
安装完成之后可以使用如下命令来检查是否安装成功:
sudo netstat -tap | grep mysql
登陆mysql数据库可以通过如下命令:
mysql -u root -p
-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。
然后通过 show databases; 就可以查看当前的数据库。(注:一定要加上分号)
显示当前数据库的表单:show tables;
数据库连接
#include<mysql/mysql.h>
mysql_init(MYSQL *mysql)
MYSQL* mysql_real_connect(
MYSQL *mysql, char *host,
char *user, char * passwd,
char *dbname, uint port,
const char *socket, ulong client_flag)
创建数据库连接,通过 mysql 进行数据库操作
数据库操作
int mysql_real_query(
MYSQL *mysql,
char *sql,
int sql_len)
对数据库进行操作,sql 可以是 增删改查等语句
数据库操作 获取结果
MYSQL_RES *res = my_use_result(MYSQL* mysql)
获取查询结果
MYSQL_ROW row = mysql_fetch_row(MYSQL *res)
获取查询结果某行,指针自动偏移,末尾返回NULL
row[0], ...., row[N] 分别为各项的值
数据库操作 获取结果
char *mysql_error(MYSQL* mysql)
int mysql_num_fields(MYSQL_ROW row)
获取记录域个数
mysql_close(MYSQL *mysql)
关闭数据库连接
mysql_select_db(MYSQL* mysql, char *dbname);
数据库操作 选择数据库
编译
编译时需要链接动态库 libmysqlclient.so
gcc mysql_demo.c -o mysql_demo -lmysqlclient
简单查询数据库例子:
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char server[] = "localhost"; char user[] = "root"; char password[] = "123"; //your password when you crete database char database[] = "mysql"; 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); printf("finish! \n"); return 0; }