编者在windows端使用的是vs2012 ,所以用vs2012来进行链接MySQL .
因为下载的MySQL是x64的 , 所以vs上也要与之对应 , 不然就会报错
找到MySQLinclude头文件目录和lib库文件目录 , 编者的目录是C:\Program Files\MySQL\MySQL Server 5.7\include 和 C:\Program Files\MySQL\MySQL Server 5.7\lib 大部分的人都是这个目录 .
在包含目录的最后写上C:\Program Files\MySQL\MySQL Server 5.7\include
在库目录的最后写上C:\Program Files\MySQL\MySQL Server 5.7\lib
切记 , 用" ; "号分隔.
在附加依赖项的最后添加libmysql.dll; 并且要到MySQL的目录下 , 将它拷贝到vs的工程目录下
工程的目录应该是这个 , 因为编者测试时在每个x64目录里都拷贝了一份 , 具体是那个还需要测试.
将以下源码拷贝到vs中 , 编译运行
#include
#include
#include
using namespace std;
int main()
{
// 定义存储MYSQL连接信息的结构体
MYSQL *mysql = nullptr;
// 初始化MYSQL结构体信息
mysql = mysql_init(nullptr);
// 和mysql server创建连接
if (!mysql_real_connect(mysql, "localhost", "root",
"123123", "school", 3306, nullptr, 0))
//第四个参数是 MySQL root用户的登录密码
//第五个参数是要连接的数据库名
//第六个参数是端口号
{
cout << "connect mysql server error!" << endl;
return 0;
}
// C和C++默认用GBK编码中文,所以设置服务器中文编码也采用gbk
mysql_query(mysql, "set names gbk");
// SQL查询操作
string sql = "select * from student"; //选择要查询的表 , 每个人的都不一样
mysql_query(mysql, sql.c_str());
// 存储查询到的结果集
MYSQL_RES *res = nullptr;
res = mysql_store_result(mysql);
// 查询到的结果集的行数是0,说明没有查到任何信息
int count = mysql_field_count(mysql);
cout << "count:" << count<<endl;
if (0 == count)
{
cout << sql << "未查询到任何信息!" << endl;
mysql_free_result(res);
return 0;
}
// 获取查询的结果集
MYSQL_ROW row;
int fields = mysql_num_fields(res);
while (row = mysql_fetch_row(res))
{
for (int i = 0; i < fields; ++i)
{
cout << row[i] << " ";
}
cout << endl;
}
mysql_free_result(res);
mysql_close(mysql);
return 0;
}
这样MySQL就连接成功了.
之前写过帖子安装MySQL,这里就不赘述
然后在终端输入:
sudo apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
至此 , 环境安装完毕 , 检查客户端函数库是否安装
ls /usr/include/mysql/
ls /usr/lib/mysql/
编译命令:
g++ -o mysql a.cpp -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
我们发现 , 中文出现乱码 , 所以改变编码方式 , 将上述代码中的mysql_query(mysql, “set names gbk”); **“gbk"改变成为"utf-8”**即可,再来看看输出结果
这样就算连接完成了.