【LEDE】树莓派上玩LEDE终极指南-91-移植MariaDB到LEDE上

前些日子使用LEDE自带的opkg包管理器安装了一个mysql,一直使用的挺正常的,今天突然心血来潮,想看一下这个自带的mysql的版本,果不其然啊,5.1,感觉应该算是比较早的版本了,而且只支持少数的编码方式。于是打算移植MariaDB到LEDE上。

首先想到的是通过源码编译,因为我现在已经有了CMake,但是考虑到树莓派的性能,最终放弃了这个想法。我记得当时用PI编译Node花了一整个下午的时间= =

最终我采取了一种投机取巧的方式来安装MariaDB,硕士安装,起始就是一个文件的移植。


具体步骤:

1、到http://fr.rpmfind.net/linux/RPM/Distribs.html下载MariaDB Server和errmsg。

下载地址:

ftp://fr2.rpmfind.net/linux/opensuse/ports/update/leap/42.3/oss/armv7hl/mariadb-10.0.31-23.1.armv7hl.rpm

ftp://fr.rpmfind.net/linux/opensuse/ports/update/42.2/armv7hl/mariadb-errormessages-10.0.31-20.7.1.armv7hl.rpm


2、紧接着按照http://fr.rpmfind.net/linux/RPM/opensuse/updates/leap/42.3/oss/armv7hl/mariadb-10.0.31-23.1.armv7hl.html中的指示安装所有缺少的库。(我只缺少libaio,装一下就好了)

3、解包刚刚下载的两个rpm包,Windows用户可以使用7z解包。

4、合并解包出来的文件

5、复制到LEDE系统的相应位置(这点我不在详细说了,我只复制了/usr目录,像etc目录本来就与LEDE不兼容,我就没有复制)

6、修复二进制程序的权限

7、mysql_install_db (之前需要配置my.cnf,别忘记咯,我以前配置好了,直接用以前mysql的就好)

8、通过--skip-grant-tables修复root密码和主机访问权限,我这里直接开放了%主机。

9、编写/etc/init.d/mysqld这个启动文件

#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2011 OpenWrt.org

START=95
STOP=10

SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
SERVICE_STOP_TIME=9
PROG='/usr/sbin/mysqld'

start() {
	local conf='/etc/my.cnf'
	local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )"

	[ -d "$datadir" ] || {
		logger -s "[ERROR] datadir '$datadir' in '$conf' does not exist"
		return 1
	}

	[ -f "$datadir/mysql/tables_priv.MYD" ] || {
		logger -s "[ERROR] can not detect privileges table, you might need to"
		logger -s "run 'mysql_install_db --force' to initialize the system tables"
		return 1
	}

	service_start "$PROG"
}

stop() {
	service_stop "$PROG"
}
10、启动

killall mysqld
/etc/init.d/mysqld restart

总结:移植过来的MariaDB的确有着以前mysql不具备的太多太多特性与功能了,包括全字符集的支持、log pool等等。

你可能感兴趣的:(OpenWrt)