MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.php?uid=9701860&do=blog&id=285428,因为MySQL5.5之后,编译是用的cmake不再使用./configure,因此,只好倒回支持./configure的版本来用,这里使用了文档上的5.1.51版本。进行如下步骤完成移植:
-
下载mysql5.1.51:
http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/mysql-5.1.51.tar.gz -
安装编译器:用的是4.3.2的交叉编译器。gcc之类的都是ubuntu10.10自带的。
-
编译PC版本的mysql备用
a) 解压mysql-5.1.51到/opt/mysql-5.1.51: tar zxvf mysql-5.1.51.tar.gzb) cd mysql-5.1.51
c) ./configure -prefix=/usr/local/mysqld) make 注意,这里无需运行make install,以为主要是为了用pc版本里的gen_lex_hash库。(注意一定要先make后,再去修改文件夹名称)
e) 将文件夹mysql-5.1.51改名为mysql-5.1.51-pc备用。(将gen_lex_hash单独备份保存一下)
f) 文档上说这里会出错,但我在编译的过程中没有碰到,唯一的问题是编译了arm版本的,重新通过改文件夹的名字回头编译pc版本的时候会报错。 -
编译arm版本的ncurses
a) 下载ncurses-5.9.tar.gz:ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gzb) 解压到/opt/中:tar zxvf ncurses-5.9.tar.gz
c) cd ncurses-5.6
d) ./configure –host=arm-linux -prefix=/usr/local/ncurse –enable-statice) make
f) make install之所以安装这个,是因为对mysql的交叉编译过程需要该库的支持(此步在用sudo make install时出错,原因是环境变量和原来不同了,解决办法:sudo -i;make install)
-
编译arm版本的mysql
a) tar zxvf mysql-5.1.51.tar.gzb) cd mysql-5.1.51
c) 修改配置文件:打开configure,可以使用gedit configure 分别在第26453行、 48175行、 48282行、 48485行附近有类似代码:
if test “$cross_compiling” = yes; then
{ { a s e c h o " as_echo " as