登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
开发板实战手册及教程
友善之臂最新动态
U-boot技术交流区
站点服务
Linux技术交流区
站务管理与公告
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
Linux技术交流区
Tiny6410平台MySQL-5.5.24交叉编译图文版教程
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : Tiny6410平台MySQL-5.5.24交叉编译图文版教程
复制链接
|
浏览器收藏
|
打印
dick
级别: 侠客
作者资料
发送短消息
加为好友
UID:
34962
精华:
2
发帖:
36
金钱:
285 两
威望:
57 点
贡献值:
2 点
综合积分:
112 分
注册时间:
2010-12-23
最后登录:
2012-06-28
楼主
发表于: 2012-05-31 13:09
全看
|
小
中
大
Tiny6410平台MySQL-5.5.24交叉编译图文版教程
管理提醒:
本帖被 wuweidong 设置为精华(2012-06-01)
自从mysql升级到5.5以上后,编译方式从configure变成cmake,导致网上的很多交叉编译方法失效。本文基于最新版本的mysql-5.5.24给出交叉编译方法,为网上最新教程
本文完全由本人所原创,ARM9之家为首发站。由于本文众多图片链自本人网站
http://sjwt.vicp.cc:8080/
,且此站是基于Tiny6410搭建的LAMP小型服务器,运行时间为6:00~23:00。因此如果看不到图片请在以上时间段内再来访问。
Apache和PHP交叉编译的图文版教程在日后会陆续放出。
发现粘贴过来格式有点不正常,原文地址在:
http://sjwt.vicp.cc:8080/post-229.html
一、下载源代码
登陆Mysql官网
进入download页面
选择下载类型
选择源码下载
拉到最下面选择tar格式
这时可能需要登陆注册一个账号,我直接登陆略过
进入下载页面
选择台湾的服务器,下载速度挺快的
二、交叉编译
一些工作环境
属性
属性值
源码目录
/home/workspace/SourceCode
交叉编译目录
/home/workspace/CorssComp/mysql-5.5.24
本地编译目录
/home/workspace/LocalComp/mysql-5.5.24
交叉编译器版本
arm-linux-gcc 4.5.1 v6
本地编译器版本
gcc 4.7.0
操作系统
ArchLinux 3.0
系统安装包
base;base-devel;
1、解压源码到编译目录
2、安装cmake配置工具
A、下载源码
从cmake的官网下载,官网链接:
http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
B、解压
C、配置
然后就是等待一段漫长的时间
D、编译
又是一段漫长的时间
E、安装
安装过程还算比较快
3、配置Mysql进行交叉编译
A、编译PC版本(个别文件在ARM版本编译过程有用)
解压
配置
开始编译
注意make完了之后不需要make install哦
B、编译ARM版本
配置
配置界面,一开始为空
单击c键先进行默认初始配置
默认配置完成后的界面
单击e键之后出现以下配置选项
对里面的选项根据自己需要进行修改
单击t键进入高级配置模式,对编译器选项进行修改
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image199_thumb.png[/img]
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image205_thumb.png[/img]
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image208_thumb.png[/img]
后面的基本不用修改了
单击c键重新生成新的配置
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image93_thumb.png[/img]
显示如下表示配置完毕
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image96_thumb.png[/img]
单击e键退出
但是编译器检测到两项新的内容并更改
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image102_thumb.png[/img]
因此需要重新单击c键再次配置
很快就配置好了,显示如下画面
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image105_thumb.png[/img]
单击e退出,表示可以真正生成配置文件了
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image108_thumb.png[/img]
单击g开始产生配置文件
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image111_thumb.png[/img]
OK,激动人心的编译时刻到来
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image114_thumb.png[/img]
当编译到这一步的时候发生错误
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image117_thumb.png[/img]
这时就需要我们从PC版中将相应的可执行文件复制过来
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image120_thumb.png[/img]
继续make
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image123_thumb.png[/img]
出现错误
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image129_thumb.png[/img]
这是由于arm-linux-gcc编译器的一个bug所造成的,需要我们修改代码
插入dummy
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image153_thumb.png[/img]
将0改成dummy
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image147_thumb.png[/img]
插入dummy
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image156_thumb.png[/img]
将0改成dummy
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image150_thumb.png[/img]
继续make
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image135_thumb.png[/img]
再次二进制文件执行出现错误
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image159_thumb.png[/img]
文件复制过来
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image163_thumb.png[/img]
继续make
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image166_thumb.png[/img]
依然出现二进制文件执行出现错误
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image169_thumb.png[/img]
文件复制过来
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image178_thumb.png[/img]
继续make
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image181_thumb.png[/img]
十分顺利的编译完成了,接下来安装
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image184_thumb.png[/img]
至此已经编译安装完成
[img]http://sjwt.vicp.cc:8080/content/uploadfile/wlwfiles/SJWTSTUDIO/MySQL_72AC/image211_thumb.png[/img]
三、在ARM上的安装
将/sdcard/mysql目录里的所有文件拷贝到ARM机对应的/sdcard/mysql目录中
1、创建my.cnf配置文件
# mkdir /sdcard/mysql/log
# mkdir /sdcard/mysql/etc
# cp support-files/my-medium.cnf /sdcard/mysql/etc/my.cnf
2、初始化数据库
执行前需赋给scripts/mysql_install_db文件执行权限
# chmod 755 scripts/mysql_install_db
# scripts/mysql_install_db --user=mysql --basedir=/sdcard/mysql/ --datadir=/sdcard/mysql/data/
3、创建管理MySQL数据库的shell脚本
# mkdir /sdcard/mysql/init.d
# cp support-files/mysql.server /sdcard/mysql/init.d/mysql
赋予shell脚本可执行权限:
# chmod +x /sdcard/mysql/init.d/mysql
4、启动MySQL:
# /sdcard/mysql/init.d/mysql start
运行mysql的时候,会提示缺少一些库文件*.so ,需要到你编译的计算机系统下寻找相应的库文件拷贝到ARM机对应的目录中
5、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):
# /sdcard/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';
6、为root帐户设置初始密码
# /sdcard/mysql/bin/mysqladmin -u root password 'new-password'
7、删除本机匿名连接的空密码帐号
/sdcard/mysql -u root -p 'new-password'
mysql>use mysql; //选择系统数据库mysql
mysql>select Host,User,Password from user; //查看所有用户
mysql>delete from user where user=''; (删除user用户)
mysql>delete from user where password=''; (删除user用户)
mysql>delete from user where host=''; (删除user用户)
mysql>drop database test; (删除默认的test数据库)
mysql>flush privileges; (刷新mysql的缓存,让以上设置立即生效)
mysql>select Host,User,Password from user; //确认密码为空的用户是否已全部删除
mysql>exit;
[ 此帖被dick在2012-05-31 13:24重新编辑 ]
顶端
回复
引用
分享
上一主题
下一主题
友善之家
Linux技术交流区
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问