交叉编译Mysql-server5.5.62版本并运行

1. 编译包下载路径

1.1 mysql-server-5.5 的下载

mysql 有自己的官网和其他gitlab的下载路径,但可能速度过慢或者不好找到源码,我是使用gitee的路径下载的。
mysql 5.5.62 : gitee连接

1.2 ncueses 库

mysql依赖该ncueses库,所有首先需要编译该库。
官网地址
http://ftp.gnu.org/pub/gnu/ncurses/
下载地址
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz

2. 编译ncurses 库

mysql依赖该ncueses库,所有首先需要编译该库。

执行如下命令:

tar zxvf ncurses-5.9.tar.gz

cd ncurses-5.9

./configure CC=arm-linux-gnu-gcc --prefix=$PWD/out --host=arm-linux --with-shared
注意:该命令需要根据自己交叉编译工具自行修改

make

3. 编译mysql库

3.1 编译X86版本的mysql

这里有人就问了,我们是交叉编译ARM 版本的mysql, 为啥还要编译X86版本的呢? 有移植经验的同学会知道: 编译过程中要生成一些工具,并在编译的时候要执行。mysql 也一样, 编译的时候需要执行以下6 个工具来完成编译:
extra/comp_err
scripts/comp_sql
sql/gen_lex_hash
sql/gen_lex_token
extra/protobuf/protoc
libmysql/libmysql_api_test

注意:前三个工具是5.5 版本中有,后三个工具在5.7版本中才有,没有测试过其他版本,读者可根据自己的情况判断。该文件是需要编译完成后拷贝到到交叉编译的源码中。

其他人可能会使用cmake ./ 直接编译,这样会导致编译出来的文件和源码混合到一起了,我个人的习惯是创建一个build目录,将编译过程中产生的文件都放到build中。所有此处运行的命令如下:

tar -zxvf mysql-5.5-62.tar.gz

mkdir build #建一个单独的文件夹来进行编译

cd build

cmake …

make

出错问题:
报错1:
– Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
解决1:
sudo apt install libncurses5-dev

报错2:
– Library mysqlclient depends on OSLIBS -lpthread;m;dl
Warning: Bison executable not found in PATH
CMake Error at cmake/bison.cmake:78 (MESSAGE):
Bison (GNU parser generator) is required to build MySQL.Please install
bison.
Call Stack (most recent call first):
sql/CMakeLists.txt:207 (RUN_BISON)

解决2:
sudo apt install bison

3.2 交叉编译

3.2.1 交叉编译之前

  1. 交叉编译之前需要将上一步编译完成的工具拷贝到 /usr/bin目录下,不然会出如下错误:
./gen_lex_hash: 1: ./gen_lex_hash: Syntax error: word unexpected (expecting ")")
sql/CMakeFiles/GenServerSource.dir/build.make:69: recipe for t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古城码农

您的鼓励就是我们的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值