前因: 有一闲置一加1手机, 看很多大神在手机上跑Linux, 玩各种炫酷操作, 我也要玩玩
直接安装MySQL, MariaDB报错, 才尝试编译的, 还真的编译成功了, 就记录下, 写给爱折腾的人
手机配置: 一加1 64G黑, CPU 4核心, 内存 3G, 比阿里云低配的配置高多了, 就利用起来
建议在不用的手机上测试, 玩废不负责的
环境准备:
0, 以下1,2,3操作有变砖风险, 请谨慎操作, **其他方式开始root权限也行, 可跳过1,2,3**, 我用的底包是氢OS
1, 刷 twrp recovery( 最新版TWRP 3.2.1-0 ), 其他方式达到这个目的也可以
2, 刷LineageOS, 还是选择最新版lineage-15.1-20180625-nightly-bacon-signed.zip
3, 刷su插件addonsu-15.1-arm-signed.zip
4, 开启su: 设置 --> 系统 --> 关于手机 --> 版本号( 点击 ), 提示已开启 "开发者选项", 返回上一级 --> 开发者选项 --> Root授权 --> 仅限于应用
5, 安装软件: linuxdeploy 支持多种linux环境, juicessh 手机版SSH连接工具, 最后使用, 这两个自行下载安装, 第一个github有打包好的
6, 使用linuxdeploy初始化环境, 我选择的是Ubuntu 18.04, 这个不清楚怎么弄的, 自行度娘
下载地址:
以上提供的是一加1手机所使用版本, 其他手机不能使用, 请去官网找对应型号
安装所需的软件并编译
0, 启动Ubuntu, Win中使用SecureCRT( 其他工具也一样 )连接, IP 在 linuxdeploy界面中可以看到
1, 安装编译MySQL所需依赖
sudo apt install git cmake make gcc g++ libssl-dev libbz2-dev libreadline-dev libncurses-dev p7zip wget
2, 下载mysql源码,并编译, 选择的源码是: Generic Linux (Architecture Independent), Compressed TAR Archive 8.0.11
cd ~
mkdir src & cd src
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11.tar.gz
tar zxvf mysql-8.0.11.tar.gz
cd mysql-8.0.11
mkdir build & cd build
# 生成Makefile, 由于mysql8.0.11依赖boost1.66.0, apt里面没有这个版本, 这里使用编译时自动下载的方式, 也可以下载好boost_1_66_0.tar.gz放入/home/android/src目录, 生成时就不用在下载, 会自动校验并解压好, 如果提示还少依赖, 根据提示安装即可
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/android/src
# 开始编译, 我这里编译使用的近5个小时, 时间太久, 请5小时后再回来
make
# 安装到指定路径, 你也可以默认安装 make install
make DESTDIR=/home/android/db/mysql instal
以上编译安装完成, 最终mysqld的路径为: /home/android/db/mysql/usr/local/mysql/bin/mysqld, 这个层级太深了, 修改最终路径为/home/android/db/mysql/bin/mysqld, 命令如下:
cd ~/db/mysql
# 请注意最后的一个 "."
mv usr/local/mysql/* .
rm -rf usr
ls # 出现以下内容说明成功
LICENSE LICENSE-test README README-test bin docs include lib man mysql-test share support-files
初始化数据并启动
1, 初始化编译好的MySQL
cd ~/db/mysql
# 查看路径并记录
pwd # 得到结果: /home/android/db/mysql
# 这里一定要使用sudo, 不然初始化不成功
sudo bin/mysqld --initialize --basedir=/home/android/db/mysql --datadir=/home/android/db/mysql/data
# 观察日志,密码在日志里面, 如下:
# [Note] [MY-010454] [Server] A temporary password is generated for root[@localhost](https://my.oschina.net/u/570656): vwnj0i*VRrtd
# vwnj0i*VRrtd 就是初化密码, 必须记关, 首次登陆需要, 然后修改密码即可
# 配置my.ini, 内容较多在下面
# 由于是使用sudo初始化的, 需要把data目录权限修改为当前用户
sudo chown -R android:android data
# 启动
bin/mysqld --defaults-file=my.ini
# 出现如下日志, 说明启动成功
[Server] /home/android/db/mysql/bin/mysqld (mysqld 8.0.11) starting as process 10624 # 10624是进程号, 每个系统不一样
2, 测试数据库
# 新建一个SSH接连
cd ~/db/mysql
bin/mysql -uroot -p
# 输入初始化数据库时的密码
# 修改密码, 不然无法执行任何命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '你要设置的密码';
# 查看默认数据库
show databases;
# 得到以如下结果
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.02 sec)
以上测试完成, 数据库没有问题, 可以把启动命令写入脚本, MySQL bin目录配置PATH, 这里不演示, 自行解决
3, my.ini文件内容
[client]
port = 3306
default-character-set=utf8mb4
[mysql]
no-auto-rehash
default-character-set=utf8mb4
[mysqld]
port = 3306
basedir = /home/android/db/mysql
datadir = /home/android/db/mysql/data
character-set-server=utf8mb4
配置Java环境
cd ~
mkdir dev & cd dev
# 下载好的jdk-8u171-linux-arm32-vfp-hflt.tar.gz文件使用WinSCP上传到手机~/dev目录
tar zxvf jdk-8u171-linux-arm32-vfp-hflt.tar.gz
# 会自动解压到jdk1.8.0_171目录
cd jdk1.8.0_171
pwd
# 得到 /home/android/dev/jdk1.8.0_171
# 配置JAVA_HOME
vi ~/bashrc
# 在文件结尾加入如下命令
export JAVA_HOME=/home/android/dev/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
# 保存退出
# 使用环境变量升效
source ~/bashrc
# 测试是否成功
java -version
# 输出版本号即成功
Java连数据库测试, 爬虫
本文重点是MySQL编译, 已测试成功, Java环境也已OK, 我就不放Java的爬虫了, 完全OJBK
PS: 主要是懒
放几个图说明成功了
使用的是 juicessh 手机SSH连接工具
能坚持看完, 绝对真爱, 希望能对你有帮助