admin 管理员组文章数量: 887021
查看相关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。
本文标签: 版本 系统 Armbian connector MySQL
版权声明:本文标题:mysql6.1 交叉编译_Armbian系统-mysql-connector-c++-1.1.8版本-交叉编译-安装 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725889333h887892.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论