最近在布置服务器程序的时候,发现数据连接有问题.为了解决这个问题,在编译服务器上安装了mysql的驱动,以下是过程,记录一下.
mysql-connector-c-6.1.6-src.tar.gz mysql-connector-cpp-1.1.6.tar.gz
解压tar xf mysql-connector-c-6.1.6-src.tar.gz
cd mysql-connector-c-6.1.6-src
mkdir build
cd build
cmake ..
make
sudo make install
从mysql网站上下载这个东西,注意的是,看起来是要登录后才能下载的,实际上不是.你看最下方,有一个不用注册就能下载的选项,只能说oracle越来越不像话.这里应该没有什么问题.我创建了一个build文件夹,然后在里面操作,是因为我习惯这样,你不在这里用这个文件夹也是没有问题的.这里默认安装位置有点不一样,反正是在/usr/local下面,具体安装到什么位置,你自己看一下好了.
解压tar xf mysql-connector-cpp-1.1.6.tar.gz
(注意 mysql-connector-cpp-1.1.7.tar.gz是编译不过的,
case MYSQL_TYPE_JSON: 这里报错)
mkdir build
cd build
cmake ..
make
sudo make install
这里是安装C++使用的接口,1.1.7版本的编译不过,有问题的,退回到1.1.6版本,就没有问题,可以直接安装.
都安装完毕后,发现链接的时候找不到mysqlclient库(/usr/bin/ld: cannot find -lmysqlclient).重新进入
cd mysql-connector-c-6.1.6-src/build 然后执行
sudo make install
发现库都安装到了/usr/local/mysql/lib/目录下.那个打开CMakeLists.txt
把其中的libmysqlclient.a修改成带路径的信息/usr/local/mysql/lib/libmysqlclient.a
再编译,发现有undefined reference to `dlclose',然后再添加dl库,后面就没有问题了.