由于我们安装的Linux是基于arm的cpu架构的,因此jdk和mysql也必须安装arm版本的,之前折腾了半天就是安装错版本了,导致jdk一直不能正常使用。还有mysql的安装配置也比较奇葩,限于安卓对系统的限制,因此需要做一些特殊的配置才能跑起来。
一、安装JDK
刚刚在摘要里说了,我的手机cpu架构是arm,所以我们下载JDK就要ARM版本的,翻了翻Oracle Jdk官网,惊喜的发现是有arm版本的,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html , 然后上传到手机的Linux容器中解压安装配置环境变量即可,可参考之前的博文:《Linux开发环境搭建之Java开发环境JDK安装配置 》
安装成功后验证:
二、安装MySql
由于mysql没有arm版本的,在官网找不到,或者需要自己手动移植编译arm版本的,我们这里直接使用install在其源中安装即可在(这里以mariadb为例,MYSQL一样):
centos: yum install mariadb-server/mysql-server
debian: apt-get install mariadb-server/mysql-server
重新安装:
sudo apt-get remove --purge mysql-*
sudo apt-get install mysql-server
进过以上安装步骤,mysql就成功安装了,接下里开始设置:
首先使用service mysql start 启动mysql服务,然后在终端执行usermod -aG aid_inet mysql
然后开始设置初始密码等,执行mysql_secure_installation
移除匿名用户,选择Y
不允许ROOT远程连接,选择N
到最后完成即可
注意:由于安卓的限制,usermod -aG aid_inet mysql这一步特别重要
这时候安装完成了,但是我们使用远程工具navicat连接提示:
2003 - Can't connect to MySQL server on '192.168.100.100' (10038)
这是因为MYSQL默认绑定了 本机127.0.0.1地址,外网无法访问,于是我们更改配置文件:vi /etc/mysql/mariadb.conf.d/50-server.cnf
此时我们使用navicat连接则正常:
三、问题记录
1.启动MYSQL总是提示:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决办法:
mysql -p #登陆mysql
Enter password:
mysql> set password for 'root'@'localhost' =password('');
mysql> flush privileges;
mysql> exit;
2.提示Access denied for user 'root'@'localhost'
解决办法:
mysql -p #登陆mysql
Enter password:
mysql> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
mysql> flush privileges;
mysql> exit;
3.安全模式启动mysql
mysqld_safe --skip-grant-tables &
4.启动服务提示密码错误
Access denied for user 'root'@'localhost' (using password: YES)
在mysql的配置文件/etc/mysql/debian.cnf中改动,配置password部分为自己设置的密码即可
四、总结
在deploy的Linux系统中安装jdk和mysql并不像平常在Linux系统中安装一样,因为平台架构不一样,存在许多坑,比如安卓的网络策略限制,必须usermod -aG aid_inet mysql等,不去踩坑就永远走不出坑,今天的实践就这些啦,后面会继续在Linux Deploy上搞事情。