今天第一次试了在阿里云上部署一个JavaWeb工程项目,踩了很多坑,借此机会记录一下。主要分为两部分,第一部分讲如何下载安装和配置JDK和Tomcat,但是由于阿里云有现成的文档,我也确实试过,可以用,所以第一部分就用他的了。主要我讲下如何下载和配置MySQL,毕竟在这上面踩了不少坑。
一、所需工具
- 操作系统:CentOS 7.x
- Tomcat:Tomcat 8.5.x
- JDK版本:JDK_8u171
- MySQL版本:MySQL5.7
二、安装和配置JDK和Tomcat
由于我用的就是阿里云的 CentOS,我使用的就是来自阿里云官方给的方案:手工部署Java Web项目,可以用,建议有需要的同学可以去看看,下面就写下使用这个方案的一些坑把。
- 一定要在安全组中放行 8080 端口,这点很重要!!!
- 文档中在配置
servel.xml
时,有提到这两个标签体<Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
,appBase
和docBase
中写的是存放项目的路径,即你需要部署的项目就放在这个路径下,后面再进行访问。 - 所有都配置完成后,若没有出现页面,先检查 Tomcat 是否正常运行,若是,则问题出现在没有在安全组中给 8080 端口放行,我就是这种情况。
三、安装配置MySQL5.7
这个步骤是最繁琐的,也是坑最多的,由于网上没有统一的教程,比较杂,我决定整理一下。
1. 下载 MySQL 的 repo 源
关于 rpm
的简介:rpm
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
2. 安装 MySQL 的 rpm
sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm
安装这个包后,会获得两个 MySQL 的 yum repo 源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3. 安装 MySQL
sudo yum install mysql-server
然后根据步骤,一直选择 y 就能安装了
4. 登陆 MySQL
mysql -u root -p
输入密码 root
,但此时会报一个错误 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
,原因就是 /var/lib/mysql 的权限问题,修改 MySQL 为当前用户:
sudo chown -R mysql:mysql /var/lib/mysql
然后,重启 MySQL
service mysqld restart
5. 查看初始密码,修改密码
我第一次输入的密码是 root,但是显示不正确,于是,我百度了一下,原来 MySQL 一开始会随机给你分配个密码,你只需要按照以下指令获取一下默认的密码,然后自己修改就好了
cat /var/log/mysqld.log | grep password
会出现差不多以下的字段,A temporary password is generated for root@localhost: bGlY?13TtFyX–: 后面的就是初始密码。然后记住密码,再次登陆
mysql -u root -p
作以下操作,用来修改密码的格式
set global validate_password_policy=0;
set global validate_password_length=4;
设置密码
alter user 'root'@'localhost' identified by 'root';
其中 by 后面的是需要重新设置的新密码
用新的密码登陆下,如果出现以下样式,就是登陆成功了
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.7.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.