交叉编译 mysql 至 ARM 板
前言
一般来说,arm 板的资源普遍较少,在受限的情况下都会选择跑小巧玲珑的 sqlite 。
但工程需要,非要跑 mysql ,此处记录一下 mysql 的交叉编译安装。
0.准备
官网下载 mysql 源码包:
https://dev.mysql.com/downloads/mysql/
此处最新版本源码包已经达到了 200 多 M ,不明觉厉。所以版本上我选择点击
Looking for previous GA versions?
下载 5.7.29 版本,
Select Operating System 选择 Source Code ,
Select OS Version 选择 Generic Linux ,
下载带有 boost 头文件的版本 :
Compressed TAR Archive, Includes Boost Headers
特别注意,mysql 依赖库 ncurses ,openssl ,也需要进行交叉编译。
详情参考 ncurses 的交叉编译 , openssl 的交叉编译。
同时本机上也要有 cmake 和 pkg-config ,不需要交叉编译,仅在编译 mysql 的时候用到:
http://pkgconfig.freedesktop.org/releases/
下载一个pkg-config稳定版本源码包,这里选择 pkg-config-0.23.tar.gz。
tar zxvf pkg-config-0.29.2.tar.gz
./configure --with-internal-glib
make
make install
1.本机编译
因为在后续的交叉编译需要用到本机编译的一些文件,所以先进行解压,并本机编译
tar zxvf mysql-boost-5.7.29.tar.gz
cd mysql-5.7.29
此处注意,在当前文件夹应该有一个 boost 文件夹,建议先记录当前的路径
/mnt/e/tools/mysql/mysql-5.7.29/boost/boost_1_59_0
比较新版本的 mysql 基本都是用 cmake 来构建,旧版本的可能会有 configure 构建的,
此处仅讨论 cmake 版本。
mkdir x86build
cd x86build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/mnt/f/tools/mysql/mysql-5.7.29/boost/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1
其中尤其注意 boost 路径:-DWITH_BOOST=上面记录下来的路径,以下为其他配置:
-DCMAKE_INSTALL_PREFIX:安装路径;
-DMYSQL_DATADIR:数据存放目录;
-DWITH_BOOST:boost源码路径;
-DSYSCONFDIR:my.cnf配置文件目录;