一、简单分享Ubuntu 16.04下安装MySQL的过程。
首先执行下面三条命令:
sudo apt-get install mysql-server #此步骤可以省略,已经启用docker mysql服务容器
sudo apt-get isntall mysql-client #必须安装,客户端远程连接mysql服务器的工具
sudo apt-get install libmysqlclient-dev #c++开发mysql.h的依赖库
连接到远程主机上的 MYSQL
mysql -u root -p -h 127.0.0.1
以下截图为在终端中通过sql命令操控mysql服务器的示例,需要在mysql客户端中输入增删改查或者其它的sql命令,注意每条命令必须以 ; 结尾,详细的sql命令可以参考
二、通过C++连接数据库
#include<stdio.h>
#include<iostream>
#include<mysql.h>
using namespace std;
int main(int argc,char* argv[]){
MYSQL conn;
int res;
mysql_init(&conn);
if(mysql_real_connect(&conn,"127.0.0.1","root","123456","testxu",0,NULL,CLIENT_FOUND_ROWS)){
cout<<"connect success"<<endl;
//插入
string sql_cmd="insert into mytable1 values(18,'haoshuang18',1,15.66),(19,'haoshuang19',1,19.66)";
sql_cmd = "insert into mytable1 value(20, 'jp', 24, 22.33)";
//删除
sql_cmd = "delete from mytable1 where id = 19";
//更新
sql_cmd = "update mytable1 set name = 'liudehua' where id = 18";
res=mysql_query(&conn,sql_cmd.c_str());
if(res){
printf("error\n");
}
else{
printf("ok\n");
}
/*************select sql example start************************/
string sql = "select * from mytable1";
mysql_query(&conn,sql.c_str());
//收集查询得到的信息
MYSQL_RES *result = NULL;
result = mysql_store_result(&conn);
//得到查询到的数据条数
int row_count = mysql_num_rows(result);
cout<<"all data number: "<< row_count << endl;
//得到字段的个数和字段的名字
int field_count = mysql_num_fields(result);
cout << "filed count: " <<field_count << endl;
//得到所有字段名
MYSQL_FIELD *field = NULL;
for(int i=0;i<field_count;++i){
field = mysql_fetch_field_direct(result,i);
cout<<field->name<<"\t";
}
cout<< endl;
MYSQL_ROW row = NULL;
row = mysql_fetch_row(result);
while(NULL != row){
for(int i=0; i<field_count;++i){
cout <<row[i]<<"\t";
}
cout<<endl;
row = mysql_fetch_row(result);
}
mysql_free_result(result);
/*****************cout example****************************/
/*
connect success
all data number: 13
filed count: 4
id name sex degree
1 tom 1 55.02
2 joan 1 99.03
3 ceshi1 1 88.56
4 ceshi2 1 77.45
5 xu5 1 55.55
6 xu6 1 66.66
7 xu1355 1 13.55
8 haoshuang1 1 15.55
9 haoshuang2 1 16.55
10 haoshuang3 1 17.55
11 haoshuang11 1 18.55
12 haoshuang12 1 19.55
13 haoshuang13 1 20.55
*/
/*****************cout end***********************************/
/*************select sql example end**************************/
mysql_close(&conn);
}
else{
cout<<"connect failed!"<<endl;
}
return 0;
}
编译程序
使用的编译代码(注意哪两个不是单引号而是反单引号)
g++ mysqltest.cpp `mysql_config --cflags --libs` -o mysqltest
运行
./mysqltest
以下为参考连接