mysql交叉编译,移植至ARM

1、编译环境

Ubuntu16.04 64位

交叉编译平台:(SCM901 64位)(交叉编译相关配置可根据自己实际情况进行配置)

aarch64-linux-gnu

交叉编译工具链:

aarch64-linux-gnu-gcc aarch64-linux-gnu-g++

交叉编译依赖的库,工具:

ncurse-6.1

没有cmake工具的需要更新cmake工具:

apt-get install cmake

2、编译步骤

2.1 下载mysql版本mysql-boost.5.7.27.tar.gz:

下载地址:MySQL :: Download MySQL Community Serve

因为移植过程中会需要用到x86环境下生成的工具,所以先编译PC端的mysql。

2.1.1 tar-xf mysql-boost-5.7.27.tar.gz

2.1.2 cdmysql-5.7.27/BUILD/

2.1.3 vicompile-pentium64修改参数为(../boost表示上一级目录必须要有boost目录,所以下载源码的时候一定要下载带有boost的源码。或者自行指定有boost的目录也可)

2.1.4 apt-getinstall libncurses5-dev

2.1.5 ./compile-pentinum64

等待编译完成即可。

2.1.6 修改pc编译目录:

cd ../../

mv mysql-5.7.27 mysql-5.7.27-pc

2.2 交叉编译ncurses-6.1

2.2.1 下载ncurses-6.1.tar.gz

下载连接:http://mirrors.ustc.edu.cn/gnu/ncurses/

2.2.2 解压tar包:

tar -xfncurses-6.1.tar.gz

2.2.3 cdncurses-6.1/

2.2.4 配置:

./configure --host=aarch64-linux-gnu --prefix=/usr/local/ncurses-6.1-armCC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++

2.2.5 编译:make

2.2.6 安装:makeinstall

2.3.0 mysql的交叉编译

2.3.1重新解压mysql-boost.5.7.27.tar.gz:

tar -xf mysql-boost-5.7.27.tar.gz

2.3.2 cdmysql-5.7.27

2.3.3 mkdirBUILD_ARM

2.3.4 cdBUILD_ARM

2.3.5 vicompile-arm

根据需要复制修改以下相关配置及路径

#! /bin/sh

path='dirname$0'

cmake.. -DWITH_DEBUG=0 -DSTACK_DIRECTION=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATIOIN=utf8_general_ci -DEXTRA_CHARSETS=all-DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=../boost-DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc-DCURSES_INCLUDE_PATH=/usr/local/ncurses-6.1-arm/include-DCURSES_LIBRARY=/usr/local/ncurses-6.1-arm/lib/libncurses.a

2.3.6 chmod755 ./compile-arm

2.3.7 ./compile-arm

2.3.8 配置成功

2.3.9 复制相关文件

cp../../mysql-5.7.27-pc/BUILD/extra/comp_err ./extra/

cp../../mysql-5.7.27-pc/BUILD/libmysql/libmysql_api_test ./libmysql

cp../../mysql-5.7.27-pc/BUILD/sql/gen_lex_hash ./sql/

cp../../mysql-5.7.27-pc/BUILD/scripts/comp_sql ./scripts/

cp../../mysql-5.7.27-pc/BUILD/sql/gen_lex_token ./sql/

cp../../mysql-5.7.27-pc/BUILD/extra/protobuf/protoc ./extra/protobuf/

2.3.10 make

出现异常error “Unsupported platform

vi ../storage/innobase/include/os0atomic.ic

在os0atomic.ic190行附近,将IB_STRONG_MEMORY_MODEL改为HAVE_ATOMIC_BUILTINS

vi ../storage/innobase/include/os0atomic.h

在/os0atomic.h 55行附近,#define IB_STRONG_MEMORY_MODEL 后面添加

#else

#define HAVE_ATOMIC_BUILTINS

在os0atomic.h255行附近,

HAVE_IB_ATOMIC_PTHREAD_T_GCC改为HAVE_ATOMIC_BUILTINS

HAVE_GCC_SYNC_BUILTINS改为HAVE_ATOMIC_BUILTINS

继续make

make成功后执行make install

文件会安装至/usr/local/mysql下,建议执行make install时使用root权限

在/usr/local/mysql下打包相关/bin /include /lib 文件,上传至ARM平台

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MySQL是一个功能强大的关系型数据库管理系统,它是开源的,可以在不同平台上使用。MySQL可以通过在线编译和离线编译两种方式来安装和配置。 离线编译是指将MySQL的源代码下载到本地计算机,然后在计算机上进行编译和安装。这种方式需要一些编译工具和依赖库的支持。ARM指的是一种处理器架构,它广泛应用于嵌入式设备、移动设备和单板计算机等领域。 要在ARM平台上进行MySQL的离线编译,首先需要将MySQL的源代码下载到ARM设备或连接到ARM设备的主机上。然后,根据操作系统和编译环境的要求,安装所需的编译工具和依赖库。 接下来,在终端或命令行界面中进入MySQL的源代码目录,并执行相应的编译命令,例如configure、make和make install等。这些命令将会按照指定的配置选项和参数来编译、构建和安装MySQL。 在ARM平台上进行离线编译可能会遇到一些问题,例如编译环境配置不正确、依赖库缺失、编译选项不兼容等。在解决这些问题时,可能需要查询MySQL的官方文档、咨询专业人士或参考相关社区和论坛的帖子。 完成编译和安装后,可以通过启动MySQL服务来访问和管理数据库。可以使用命令行工具或图形界面工具连接到MySQL服务器,并执行SQL语句来创建、修改和查询数据库。 通过离线编译,能够更好地控制MySQL的构建过程,并优化编译参数以适应特定的ARM平台需求。同时,离线编译也可以加快部署速度,减少对网络和外部依赖的依赖,提供更稳定和可靠的数据库解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值