【数据库】mysql移植
一、源码下载
1、下载mysql源码
源码下载地址:选择版本:5.1.72(这是个老版本,高版本需要使用cmake)
https://cdn.mysql.com/archives/mysql-5.1/mysql-5.1.72.tar.gz
历史版本下载地址
源码官网地址,在Operating System中选择Source code
https://downloads.mysql.com/archives/community/
2、下载ncurses,选择5.9版本
官网地址
http://ftp.gnu.org/pub/gnu/ncurses/
下载地址
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
二、交叉编译
1、编译PC版的mysql备用
1.1 解压mysql-5.1.72.tar.gz后进入目录mysql-5.1.72中,执行:./configure -prefix=/usr/local/mysql
1.2 执行:make
1.3 复制mysql-5.1.72 为mysql-5.1.72_pc备份
2、交叉编译ncurses,注意路径是本人电脑环境的路径(/home/lisa/1-tools/install/ncurses-5.9),需要根据自己的做更改
2.1 解压ncurses-5.9.tar.gz后进入目录ncurses-5.9中,
执行:./configure --host=arm-fsl-linux-gnueabi --prefix=/usr/local/ncurse -enable-static
2.2 执行:make
2.3 进入root权限:su
2.4 配置环境变量PATH:根据自己电脑环境来配置
export PATH=$PATH:/home/lisa/1-tools/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/
2.5 执行:make install
3、交叉编译mysql
3.1 解压mysql-5.1.72.tar.gz后进入目录mysql-5.1.72中;
3.2 修改configure,共四处
3.2.1
----------------------------------------------------------------------------------------------
26302 if test "$cross_compiling" = yes; then
26303 echo "skip...!"
26304 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
26305 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
26306 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
26307 #See \`config.log' for more details." >&5
26308 #$as_echo "$as_me: error: cannot run test program while cross compiling
26309 #See \`config.log' for more details." >&2;}
26310 # { (exit 1); exit 1; }; }; }
26311 else
-------------------------------------------------------------------------------------------------
3.2.2
-------------------------------------------------------------------------------------------------
48121 if test "$cross_compiling" = yes; then
48122 echo "skip...!"
48123 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
48124 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
48125 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
48126 #See \`config.log' for more details." >&5
48127 #$as_echo "$as_me: error: cannot run test program while cross compiling
48128 #See \`config.log' for more details." >&2;}
48129 # { (exit 1); exit 1; }; }; }
48130 else
-------------------------------------------------------------------------------------------------
3.2.3
-------------------------------------------------------------------------------------------------
48228 if test "$cross_compiling" = yes; then
48229 echo "skip...!"
48230 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
48231 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
48232 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
48233 #See \`config.log' for more details." >&5
48234 #$as_echo "$as_me: error: cannot run test program while cross compiling
48235 #See \`config.log' for more details." >&2;}
48236 # { (exit 1); exit 1; }; }; }
48237 else
-------------------------------------------------------------------------------------------------
3.2.4
-------------------------------------------------------------------------------------------------
48442 if test "$cross_compiling" = yes; then
48443 echo "skip...!"
48444 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
48445 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
48446 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
48447 #See \`config.log' for more details." >&5
48448 #$as_echo "$as_me: error: cannot run test program while cross compiling
48449 #See \`config.log' for more details." >&2;}
48450 # { (exit 1); exit 1; }; }; }
48451 else
-------------------------------------------------------------------------------------------------
3.3 执行configue,注意:安装路径和引用ncurses-5.9库的路径,是本人电脑环境的路径,需要根据自己的做更改
./configure --host=arm-fsl-linux-gnueabi --enable-static --with-named-curses-libs=/usr/local/ncurse/lib/libncurses.a --prefix=/usr/local/mysql --without-debug --without-docs --without-man --without-bench --with-charset=gb2312 --with-extra-charsets=ascii,latin1,utf8
3.3.1 注意:configure -help中有如下编译选项,本次未添加,未验证:--with-embedded-server --with-machine-type
3.4 修改sql/sql_parse.cc,添加如下代码
-------------------------------------------------------------------------------------------------
5741 #define STACK_DIRECTION 1
-------------------------------------------------------------------------------------------------
3.5 将pc版中gen_lex_hash文件到当前文件夹
$cp ../mysql-5.1.72_pc/sql/gen_lex_hash sql/
$touch –m sql/gen_lex_hash
$cp ../mysql-5.1.72_pc/sql/lex_hash.h sql/
$touch –m sql/lex_hash.h
3.6 make
3.7 进入root权限:su
3.8 配置环境变量PATH:根据自己电脑环境来配置
export PATH=$PATH:/home/lisa/1-tools/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/
3.9 执行:make install
三、移植到arm平台
1、将库拷贝到开发板上
$ cd /usr/local/
$ sudo tar -zcvf mysql-arm-5.1.72.tar.gz mysql/
将mysql-arm-5.1.72.tar.gz拷贝到开发板上,解压到/usr/local下:tar -xf mysql-arm-5.1.72.tar.gz -C /usr/local
2、配置环境变量
修改/etc/profile,在文件添加:
-------------------------------------------------------------------------------------------------
export PATH="$PATH:/usr/local/mysql/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql"
-------------------------------------------------------------------------------------------------
3、创建配置文件 /etc/my.cnf
添加内容如下:
-------------------------------------------------------------------------------------------------
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
datadir=/var/lib/mysql
socket=/tmp/mysql.sock
user=root
old_passwords=1
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-------------------------------------------------------------------------------------------------
4、安装mysql数据
#mkdir -p /var/run/mysqld/
#mkdir -p /var/log/
#touch /var/run/mysqld/mysqld.pid
#mysql_install_db --user=root --force --basedir=/usr/local/mysql --datadir=/var/lib/mysql
5、添加启动文件
将源码中的启动文件:拷贝support-files/mysql.server,为/etc/init.d/mysqld
修改mysql.server内容:
-------------------------------------------------------------------------------------------------
basedir=/usr/local/mysql
datadir=/var/lib/mysql
pid_file=/var/run/mysqld/mysqld.pid
server_pid_file=/var/run/mysqld/mysqld.pid
-------------------------------------------------------------------------------------------------
6、重启开发板
四、使用mysql
1、初始化mysql数据库
mysql_install_db --user=root --force --basedir=/usr/local/mysql --datadir=/var/lib/mysql
-------------------------------------------------------------------------------------------------
root@freescale ~$ mysql_install_db --user=root --force --basedir=/usr/local/mysql --datadir=/var/lib/mysql
Installing MySQL system tables...
170612 14:25:55 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
OK
Filling help tables...
170612 14:25:55 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h freescale password 'new-password'
Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!
-------------------------------------------------------------------------------------------------
2、启动mysql数据库
/etc/init.d/mysqld start
3、访问mysql
mysql -u root
mysql>use mysql
mysql>show tables;
相关文章:

HTML添加上传图片并进行预览
使用说明:新建文件,直接复制粘贴,保存文件为html 格式,在浏览器运行即可; 第一种: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loos…

滴滴裁员2000多人,去年亏损超百亿
作者 | 非主流出品 | AI科技大本营(ID:rgznai100)据多家媒体的消息,在今天(1 月 15 日)上午的月度全员会上,滴滴 CEO 程维宣布公司将做好过冬准备,2019年会聚焦当前最重要的出行主业,…

自己写的Treeview控件绑定数据源
首先在数据库中建表,表的格式如下id name parent_id代码如下:/// <summary>/// 添加根节点/// </summary>/// <param name"list">表的所有数据orm的List集合,object为表对应的实体对象</param>private…

【GDB】gdbserver的使用,远程调试开发板
0、将gdbserver拷贝到目标板子上 注:gdbserver在交叉编译工具目录/debug-root/usr/bin下 可用file命令查看 ------------------------------------------------------------ $ file gdbserver gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linke…

关于javascript代码优化的8点建议
前面的话 本文将详细介绍JS编程风格的几个要点 松耦合 当修改一个组件而不需要更改其他组件时,就做到了松耦合 1、将JS从CSS中抽离:不要使用CSS表达式 //不好的做法 .box{width: expression(document.body.offsetWidth ’px)} 2、将CSS从JS中抽离&#…

英伟达Q4净利同比降49%,还能继续躺赚吗?
图片来自英伟达官网整理 | 非主流出品 | AI科技大本营(ID:rgznai100)北京时间 2 月 15 日凌晨消息,英伟达公布了 2019 财年第四季度及全年财报。报告显示,英伟达第四季度营收为 22.05 亿美元,与上年同期的 29.11 亿美元…

管理磁盘和文件系统
管理磁盘和文件系统 实验案例一:迁移/home分区并设置磁盘配额 实验环境 公司原来安装的rhel5服务器采用了自动分区的方案,随着使用服务器的系统用户数量不断增多,根分区经常面临磁盘空间耗尽的情况,偶尔有几次还导致系统无法启动。…

TIOBE 2月编程语言排行榜:Python逼近C,Groovy重回TOP 20
作者 | 唐小引出品 | CSDN(ID:CSDNnews)新月伊始,一月一更的 TIOBE 编程语言社区发布了最新的 2 月编程语言排行榜。继 Python 语言成为 "2018年度编程语言" 的称号,在2月的编程语言排行榜中,Pyt…

【视频】YUV基础
参考网站:https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx YUV定义: YUV颜色空间主要用于优化彩色视频信号的传输,并使其向后兼容老式黑白电视。 其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值; 而“U”和“V” 表示的则是色…

删除电脑里的空文件夹
发现电脑好多空文件夹,网上没有找到删除空文件夹的程序,自己动手谢了段代码 import java.io.File;/*** author zhangyanan*/ public class FileUtil { public static void main(String args[]) {String[] disk{"C:/","D:/","E:…

QT创建子对话框
1)根据UI文件动态加载对话框QUiLoader uiLoader;QFile file("://new/prefix1/testDailog.ui");QWidget *myWidget uiLoader.load(&file);myWidget->show();2) 创建非模态对话框 (需建立对话框类testDialog)testDialog *dialog new testDialog(this);dialog-…

对标Bert?刷屏的GPT 2.0意味着什么
作者 | 张俊林,中国中文信息学会理事,中科院软件所博士。目前在新浪微博 AI Lab 担任资深算法专家。在此之前,张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队,以及在百度和用友担任技术经理及技术总监等职务。同时他是技术书…

Wedge 100-32X 100GbE Data Center Switch
1、总体设计 (https://www.edge-core.com/productsList.php?cls1&cls25&cls367) 基于 Facebook’s Wedge 100 design. 30个QSFP28光模块 使用broadcom Tomahawk 3.2 Tbps 芯片 COM-E CPU module,Intel Atom E3800 x86 processor 支…

【视频】对RTSP抓包,分析通讯流程
1、C–>S(客户端向服务端):OPTIONS命令查询服务器提供的方法 Request: OPTIONS rtsp://192.168.1.10:554/12 RTSP/1.0\r\n CSeq: 2\r\n User-Agent: LibVLC/2.2.8 (LIVE555 Streaming Media v2016.02.22)\r\n \r\n 2、S–>C:回应OPTIONS Response: RTSP/1.0 200 OK\…

JDBC知识全攻略
1. JDBC 的用途是什么?简单地说,JDBC 可做三件事:与数据库建立连接,发送SQL 语句,处理结果。下列代码段给出了以上三步的基本示例:Connection con DriverManager.getConnection ("jdbc:odbc:wombat&…

一次性掌握机器学习基础知识脉络 | 公开课笔记
来源 | AI科技大本营在线公开课 嘉宾 | 张相於 整理 | suiling 本次公开课AI科技大本营邀请到了阿里巴巴的高级算法专家张相於,他将从数据的概率分布开始介绍机器学习核心概念之间的有机关系,帮助大家建立知识脉络,做到知识的有机吸收。同时&…
Mongo、Redis、Memcached对比及知识总结
存储原理(持久化) Mongo Mongo的数据将会保存在底层文件系统,因此存储容量远大于redis和memcached。一个database中所有的collections以及索引信息会分散存储在多个数据文件中,即mongodb并没有像SQL数据库那样,每个表的…

【QT】Qtcreator的设计模式中将控件提升为自定义的控件
测试环境 在工程中添加自定义的控件 如:MyWidget 进入设计模式,右键需要提升的控件(该控件的父类必须和自定义控件的父类相同,否则不能提升),选择“提升为…”,在新建提升的类中填写类的名称…

文件时间信息在测试中的应用
1 简介文件时间信息在测试中也有妙用~ 通过记录模块运行前后的文件时间信息来识别运行前后发生变化的文件,从而识别模块运行前后的新增文件、删除的文件和内容发生变化的文件。 利用识别出来的发生变化的文件来减少复杂模块回归测试中采用新旧对比回归测…
SpringMVC之请求参数的获取方式
转载出处:https://www.toutiao.com/i6510822190219264516/ SpringMVC之请求参数的获取方式 常见的一个web服务,如何获取请求参数? 一般最常见的请求为GET和POST,get请求的参数在url上可以获取,post请求参数除了url上还…

生成假人脸、假新闻...AI虚拟世界正形成
整理 | 一一出品 | AI科技大本营(ID:rgznai100)AI 正在创造一个独特的虚拟(虚假)信息世界。一个人脸喂养生成网站火了。这个网站可以生成随机人脸图像,这些人脸没有姓名,在现实世界中并不存在,而…

【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析
问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1、使用命令关机(halt)会调用rc0.d中的脚本; 2、使用命令重启(reboot)会调用rc6.d中…

【linux】NXP MFGTools工具配置文件详解
mfgtools\cfg.ini [profiles] chip Linux #对应mfgtools\Profiles\Linux\OS Firmware\中“Linux” #MfgTool2.exe中会使用路径:Profiles${chip}\OS Firmware [platform] board MY-IMX6 #没有用,可以忽略 [LIST] name Linux-3.14.52 #对应mfgtools\…

Python打造最强表白程序
作者 | 痴海转载自公众号痴海(ID:ch726612)情人节刚过,朋友圈又是刷屏的节奏。但热闹总是别人的,我们好像只有吃狗粮的份。时间总是飞快流逝,很多事情早已改变,但仿佛只有你的单身状态从未改变。单身久的我…

怎样加强你的意志力
每个人都有惰性,而且每天都在惰性进行斗争,而这个斗争在你死之前,是不会停止的。实际每个人都知道,每天应该坚持学习,早起早睡,可是到时候总是因为各种原因放弃。能坚持下来的人,离目标就更近一…

解除微信回调的Activity必须在包名.wxapi下的限制
很久以前写过一篇文章:Android打包之多版本、多环境、多渠道。里面主要提到了将测试环境和正式环境的包分成不同的包名,同时安装在手机上,以便我们调试。同时,通过manifest的占位符,动态替换icon和label,让…

FreeBSD 6.0架设管理与应用-第三章 UNIX 系统入门
在开始进阶的 FreeBSD 设定之前,我们先来了解一下 UNIX 系统的架构及基本知识。这些知识对于我们之后管理、使用 FreeBSD 十分重要。如果您是 UNIX 新手,请务必详读本章。本章将介绍下列主题:如何登入注销系统。 UNIX 的指令用法。 UNIX 中常…

京东金融App收集用户敏感信息?致歉来了
整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)京东金融 App 收集用户信息大家看到的是安全隐患,而我们看到的是一个大企业的原罪。日前,就京东金融 App 疑似收集信息事件引起了网络上的轩然大波。就该起事件,京东金融…

安装Python的wx库
2019独角兽企业重金招聘Python工程师标准>>> 遇到问题1:pip不是内部或外部命令,也不是可运行的程序 解决办法:修改环境变量:变量值改为:C:\Python27\;C:\Python27\Scripts; 遇到问题2:wxPython.…

【linux驱动】嵌入式 Linux 对内存的直接读写(devmem)
devmem工具源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <signal.h> #include <fcntl.h> #include <ctype.h> #include <termios.h> #include …