Linux 安装JDK Tomcat MySQL(使用Mac远程访问)
阅读本文需要一定的Linux基础
一 环境
阿里云服务器: CentOS 7.4 64位(基于RedHat)
本机: macOS High Sierra
二 压缩包
JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat https://tomcat.apache.org/download-80.cgi#8.5.31
MySQL https://dev.mysql.com/downloads/mysql/
三 文件传输
输入SFTP命令连接 -> 输入实例登录密码
sftp root@公网IP
上传
put 本地文件 服务器路径
下载
get 服务器文件 本地路径
四 远程访问
输入SSH命令连接 -> 输入实例登录密码
ssh root@公网IP
五 关闭防火墙
关闭防火墙
systemctl stop firewalld.service
关闭防火墙开机自启动功能
systemctl disable firewalld.service
查看防火墙状态
firewall-cmd --state
六 安装JDK
查看当前Linux系统是否已安装java
rpm -qa | grep java
卸载已安装java
rpm -e --nodeps 要卸载的软件
新建目录
mkdir /usr/local/jdk
解压
cd jdk压缩包所在目录
tar -xvf jdk-8u171-linux-x64.tar.gz -C /usr/local/jdk
配置jdk环境变量 将下面配置拷贝进去
vim /etc/profile
# java environment JAVA_HOME=/usr/local/jdk/jdk1.8.0_171 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
重新加载/etc/profile配置文件
source /etc/profile
七 安装Tomcat
需要安装JDK
新建目录
mkdir /usr/local/tomcat
解压
cd tomcat压缩包所在目录
tar -xvf apache-tomcat-8.5.31.tar.gz -C /usr/local/tomcat
进入bin目录
cd /usr/local/tomcat/apache-tomcat-8.5.31/bin
启动
./startup.sh
关闭
./shutdown.sh
八 安装MySQL
查看当前Linux系统是否已安装mysql
rpm -qa | grep mysql
卸载已安装mysql
rpm -e --nodeps 要卸载的软件
查看当前Linux系统是否已安装mariadb
rpm -qa | grep mariadb
卸载已安装mariadb
rpm -e --nodeps 要卸载的软件
mysql依赖
yum install libaio
新建目录
mkdir /usr/local/mysql
解压
cd mysql压缩包所在目录
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
安装
cd /usr/local/mysql
rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
初始化mysql数据库
mysqld --initialize
查看mysql密码
more /var/log/mysqld.log
修改mysql数据库目录的所属用户及其所属组
chown mysql:mysql /var/lib/mysql -R
启动mysql数据库
systemctl start mysqld.service
查看mysql数据库状态
systemctl status mysqld.service
进入安全设置向导(新版的mysql必须先修改root用户的密码 否则登录后是不能执行任何命令的)
mysql_secure_installation
向导一
用户帐户根的现有密码已过期 请设置一个新的密码
向导二
验证密码插件可以用来测试密码和提高安全性 它检查密码的强度 允许用户只设置那些密码足够安全 你愿意安装验证密码插件吗?
向导三
使用现有的root密码
向导四
默认情况下 MySQL安装有匿名用户 允许任何人在不需要的情况下登录MySQL 为它们创建的用户帐户 这只是为了测试 并使安装更加顺利 您应该在进入生产环境之前删除它们
向导五
通常 根应该只允许连接"localhost" 这确保了有人无法猜测来自网络的根密码(这个我也搞不懂了 选择是或者否 都无法远程访问 需要额外设置 下面会讲到)
向导六
默认情况下 MySQL提供一个名为"test"的数据库 任何人都可以访问 这也是为了测试 并且在进入生产前应该被移除
向导七
重新加载特权表将确保所有更改 到目前为止所做的一切将立即生效
mysql默认开机启动
解决问题
java.sql.SQLException: null, message from server: "Host '113.57.183.25' is not allowed to connect to this MySQL server"
原因: MySQL不允许从远程访问
解决办法 -> 服务器输入:
mysql -uroot -p;
输入MySQL登录密码
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;
flush privileges;
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
原因: 不允许检索公钥
解决办法 -> 代码修改:
MySQL url添加一个参数allowPublicKeyRetrieval=true
jdbc:mysql://120.79.191.83:3306/web?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
Navicat Premium 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
原因: MySQL8.0改变了身份验证插件
解决办法 -> 服务器输入:
mysql -uroot -p;
输入MySQL登录密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '这里替换成你自己的密码';