admin管理员组

文章数量:1536769

查看相关mysql-dev库: aptitude search mysql|grep devel。安装相关库。

搜索相关安装:apt-cache search libmysql

项目用的版本是1.1.8。下载源码包mysql-connector-c++-1.1.8.。

解压,进入目录。可以先阅读“INSTALL”文件。里面有各个平台编译的详细说明(Unix, Solaris, Windows)。

了解下其它的相关信息:

(1)cppconn目录是头文件夹,driver目录是源码文件夹。

(2) “BUILDING ON UNIX”-“1.”。会检查:C compiler/CXX compiler/Boost/Mysql/等。

(3)查看“BUILDING ON UNIX”-“2. Use make on build the libraries”。如何编译成库文件。

(4)从源码安装C++连接器需要支持库:Build Tools,MySQL Client Library,Boost C++ Libraries。

(5)必须要跨平台的编译工具CMake(推荐2.8.12或者更高哦版本,老版本也“可能”可以用)。

(6)必须要支持C++11的编译器。

(7)必须要MYSQL Client Library。MYSQL 5.7(5.7.9或者更高版本)。通常安装MYSQL时会安装MYSQL客户端库。

(8)若要指定查找客户机库的位置,可以设置MYSQL_DIR的值。

(9)必须要安装了Boost。Boost1.59.0或者更高版本。

(10)Boost被安装后,可以设置Cmake选项BOOST_ROOT来指示Boost文件夹位置。如:cmake [other_options] -DBOOST_ROOT=/usr/local/boost_1_59_0。

(11)可以用-DCMAKE_INSTALL_PREFIX=path_name指定安装路径。

cmake .生成编译信息,或者可以带其它相关的配置参数。不设置表示默认。

make clean。

make。

如果你向安装库到当前系统上,就执行make install。

安装完成可以测试:./test_install localhost root password database。成功了,你会看到输出信息。

mysql_get_option?has not been declared错误:

(1). 没有安装MySQL客户端,只安装了mysql-devel等相关开发包,但是编译1.1.8的时候,执行make的时报如下错误:

/mysql-connector-c++-1.1.8/driver/nativeapi/libmysql_static_proxy.cpp:323:6: error: ?:mysql_get_option?has not been declared

if (::mysql_get_option(mysql, option, arg)) {

^

driver/CMakeFiles/mysqlcppconn.dir/build.make:470: recipe for target ‘driver/CMakeFiles/mysqlcppconn.dir/nativeapi/mysql_client_api.cpp.o’ failed

(2). 在官方网址上看到“Changes in MySQL Connector/C++ 1.1.8”解决了BUG,1.1.8版本比在MYSQL5.7低的版本不能成功编译。

(3). 后来全文搜索的时候看到这个注释:mysql_get_option() was added in mysql 5.7.3 version和代码中关于mysql_get_option函数的相关的判断:MYSQL_VERSION_ID >= 50703。说明我们MySQL Client Library版本低于5.7.3。

(4). 看文档说明了1.1.8版本连接选项增加了最大的数据包设置和网络缓冲区大小设置。说明我们报的错误也和这个功能有关。

(5). 网上下载了新的mysql-devel但是架构都不对应。

(5). 用apt-get安装的libmysqlclient-dev版本对应的5.5左右的版本,比5.7.3要低。

(6). 要解决问题,我们需要安装Mysql了。下载了Mysql-5.7.10版本。此版本的Mysql需要Boost-1.59(高版本的Boost不合法)。

安装Mysql:

(1)创建组:groupadd mysql

(2)创建用户:useradd -r -g mysql mysql

(3)创建mysql文件夹于数据存放文件夹data:mkdir -p /usr/local/mysql/data。

(4)安装cmake。

(5)进入mysql的解压目录,创建build文件夹,进入build文件夹。

(6)cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DBOOST_INCLUDE_DIR=/usr/local/boost_1_59

(7)make

只有1G内存,安裝Mysql中途提示:c++: internal compiler error。报内存不足。解决方式增加一个交换分区。

(1)创建分区1G大小文件:dd if=/dev/zero of=/swapfile bs=1k count=1024000。

(2)mkswap /swapfile。

(3)swapon /swapfile。

(4)如果需要每次系统重启后自动挂载交换分区,就需要修改/etc/fstab文件,新增内容:/swapfile swap swap defaults 0 0。由于我们只是本次编译到用,所以不设置。

(5)编译完成后,关闭交换分区:swapoff /swapfile。

(6)删除交换分区:rm /swapfile。

本文标签: 版本系统Armbianconnectormysql