啟動終端,輸入以下命令,進入mysql。
# mysql -u username -p
創建一個數據庫。
mysql > create database TemWet;
創建數據表monitZ喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcixzZW5zZXJzo6yyorLlyOuy4srUyv2+3aGjPC9wPgoKCjxwcmUgY2xhc3M9"brush:sql;"> c連接操作數據庫代碼示例: 編譯c文件: 編譯成功,執行成功. 插入一條帶中文的數據,但是卻出現了中文亂碼的問題。這應該是數據庫的字符編碼問題了。 解決方案: 保存,並重新啟動mysql服務。 刪除之前的數據庫數據表,重新建立,並插入數據,完美支持中文。 mysql> use TemWet
Database changed
mysql> create table monitor
-> (
-> Id int not null,
-> monitor_name varchar(50),
-> monitor_com varchar(50),
-> primary key(Id)
-> );
Query OK, 0 rows affected (0.10 sec)
三、編寫c程序測試
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static char* server_groups[]={"embedded","server","this_program_server",(char*)NULL};
int main(){
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char sqlcmd[200];
int t,r;
mysql_init(&mysql);//初始化MYSQL標識符,用於連接
if(!mysql_real_connect(&mysql,"localhost","root","root","sensers",0,NULL,0)){
fprintf(stderr,"無法連接到數據庫,錯誤原因是:%s/n",mysql_error(&mysql));
}
else {
puts("數據庫連接成功");
//首先向數據庫中插入一條記錄
//sprintf(sqlcmd,"%s","insert into friends (name,telephone) Values ('xx','xx')");
//mysql_query(&mysql,sqlcmd);
sprintf(sqlcmd,"%s","set names utf8;");
t=mysql_real_query(&mysql,sqlcmd,(unsigned int)strlen(sqlcmd));
sprintf(sqlcmd,"%s","select * from senser;");
t=mysql_real_query(&mysql,sqlcmd,(unsigned int)strlen(sqlcmd));
if(t){
printf("查詢數據庫失敗%s/n",mysql_error(&mysql));
}
else {
res=mysql_store_result(&mysql);//返回查詢的全部結果集
while(row=mysql_fetch_row(res)){//mysql_fetch_row取結果集的下一行
for(t=0;t<mysql_num_fields(res);t++){//結果集的列的數量
printf("%s\t",row[t]);
}
printf("\n");
int wet = atoi(row[2]);
printf("%d\n",wet);
}
mysql_free_result(res);//操作完畢,查詢結果集
}
mysql_close(&mysql);//關閉數據庫連接
}
mysql_library_end();//關閉MySQL庫
return EXIT_SUCCESS;
}
# gcc sqltest.c -o sqltest -lmysqlclient
四、字符集設置
修改MySQL的配置文件/etc/mysql/my.cnf
查看數據庫的字符集:mysql> show variables like "character_set_%';