视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL数据库在ARM+Linux平台上的移植
2020-11-09 12:19:13 责编:小采
文档


最近需要在pxa270的嵌入式平台上应用数据库进行通信信息管理,客户要求使用MySQL数据库,接下任务后,在网上一查才知道MySQL 根本很

最近需要在pxa270的嵌入式平台上应用数据库进行通信信息管理,客户要求使用MySQL数据库,接下任务后,在网上一查才知道MySQL 根本很少用于嵌入式环境,而且支持的少数几种芯片中并没有arm的分发包!继续搜索有没有MySQL在arm平台移植的相关文章,几乎找不到相关资料.而自己在网上发了一些帖却没有收到一个回复,没办法,只能硬着头皮自己动手了.幸好经过一番”苦战”,今天终于克服了所有障碍,让MySQL在270板子上跑了起来!而且简单的测试也都收到了预期的效果,不过还要看客户的经一步测试了.

现在将MySQL 的arm+linux移植经验贴出来,希望对以后做相关方面工作的人有所帮助.

首先是要从网上获取MySQL的源码包,官方网址如下:

我用的是MySQL-5.0.22.tar.gz

采用的交叉编译器是适合于270板子的codesourcery这要根据具体的情况来进行修改.

以下分几个阶段来介绍:

一: configure

解开包以后得到文件夹MySQL-5.0.22我将其改名为MySQL-pc,进入目录后,首先要做configure 来生成交叉编译的Makefile文件,编译的时候一般configure是都能通过的但我用./configure --host=arm-none-linux-gnueabi来生成Makefile时却出现了多个错误,如下:

1) return type of sprintf : error: cannot run test program while cross compiling

检查configure脚本,发现脚本在检测到在做cross-compile时就提示以上错误并退出,说明至少是这个版本的MySQL并不支持交叉编译,但我用了最新的版本试了也还是有同样的错误,基本可以肯定MySQL还没有支持交叉编译的版本出现.但为了让编译继续,我在configure脚本中将多处这样的命令全都注释掉以让configure通过.

2) error: Your compiler cannot convert a longlong value to a float!

这个问题在较低版本的MySQL中是一个bug,但5.0的版本已经修复了这个问题,有可能是交叉编译器的问题,找不到解决的方法,这里我也将它注释屏蔽了.

3) error: No curses/termcap library found

缺少curses和termcap的库,反复安装了各种相关的软件包,还是解决不了这个问题,最后是在configure的参数里直接指定了安装的ncurses-5.6下的libncurses.a库根据我的路径参数设置如下:

--with-named-curses-libs=/home/huaming/MySQL/ncurses-arm-d501/lib/libncurses.a

(这里要注意的是ncurses的安装也要采用交叉编译的方式在pc上装好,否则后面做make的时候编译器会指出libncurses.a的格式不对)

经过反复尝试我最后使用的参数如下:

./configure --host=arm-none-linux-gnueabi --with-named-curses-libs=/home/huaming/MySQL/ncurses-arm-270/lib/libncurses.a --prefix=/home/huaming/MySQL/MySQL_arm_270 --without-debug --without-docs --without-man --without-bench --with-extra-charset=gbk,gb2312

下载本文
显示全文
专题