首先卸载mysql,因为在用c++链接库时一直找不到,感觉是哪里弄错,所以想要整个卸载重新安装命令如下:
sudo apt-get remove mysql-*
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
接着我们要重新安装mysql,以及devel开发包,这是在linux下进行数据库开发需要装的,命令如下:
sudo apt-get install mysql-server
sudo apt-get install libmysqld-dev
apt-get install mysql-client
apt-get install libmysqlclient-dev
然后就可以在/usr/include/mysql路径下找到mysql.h这个库了,然后include时要用mysql/mysql.h
运行时需要链接libmysqlclient.so,找不到的话可以用下面命令,记得加sudo不然很多路径没权限访问,就可以看到了
sudo find / -name '*libmysql*'
然后就可以进行编译
sudo g++ -o target main.cpp -L/usr/lib/x86_64-linux-gnu -lmysqlclient
测试代码:
#include <iostream>
#include <mysql/mysql.h>
using namespace std;
int main()
{
MYSQL_RES *result;
MYSQL_ROW row;
MYSQL *connection;
MYSQL mysql;
int state;
mysql_init(&mysql);
connection = mysql_real_connect(&mysql, "ip", "db", "pw", "tb",0 ,0 ,0);
if(connection == NULL){
cout << mysql_error(&mysql) << endl;
return 0;
}
else cout << "connect successfully" << endl;
state = mysql_query(connection, "select ip,group_id from ip_group");
if(state != 0){
cout << mysql_error(connection) << endl;
return 0;
}
else cout << "connect successfully" << endl;
}