今日小编闲来无事,乘着公司新项目即将上线之际,在阿里云上整了一台centos作为测试机。原本以为一个小时搞定,结果还是花了一点小小时间。不管怎么说,记录下来,给各位小白当成课后甜点吧。

价格

先上价格,809.4RMB。

这个价格也就是一顿大餐的事情,BUT,作为程序员的你,未来的一年这台机器都是属于你的了哦。当然,配置低是低了点,但是好歹它是一台具备公网地址,功能齐全的centos7啊。总之,你想怎么造就怎么造,只要不用来干坏事就行。

关闭防火墙

由于这台测试机我们要干很多事情,所以上来的第一件事情是关闭防火墙,如下:

systemctl stop firewalld

然后,开机禁用,

systemctl disable firewalld

注意了,systemctl是CentOS7的服务管理工具,小编不妨把一些常用的命令罗列在这里吧,

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld

开机禁用  : systemctl disable firewalld

开机启用  : systemctl enable firewalld

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

开启8080端口

我们暂时并不打算使用80端口提供服务,所以,就打算将tomcat的8080作为web服务提供端口。但是,阿里云默认是不开启这个端口的,那怎么办呢,去控制台开启吧。

在ecs的列表界面,点更多->安全组配置,

这是具体的配置规则

配置完毕后,我们在家中的沙发上就可以去访问8080上的服务了。当然了,我们得首先配置JDK和TOMCAT不是么。

安装JDK

考虑到我们的项目使用的是1.8开发的,所以,jdk就使用jdk1.8.0_151了。不要嫌弃小编,小编知道现在是JDK12了,但是奈何客户喜欢1.8啊。

tar –xvf jdk-8u151-linux-x64.tar.gz –C /usr/local/

参数讲解:

-x:extract,解包

-v:verbose,显示打包解包详细过程

-f:file,后面要跟立刻被处理的压缩包名

-C:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项;

然后,vi /etc/profice,在最后加入这几行:

export JAVA_HOME=/opt/jdk1.8.0_151

export PATH=${JAVA_HOME}/bin:$PATH

export CATALINA_HOME=/opt/apache-tomcat-8.5.40

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${CATALINA_HOME}/lib

export JRE_HOME=/opt/jdk1.8.0_151/jre

大家看到了tomcat的参数,没关系,因为我们马上还要安装tomcat,所以我就一并提前录入进去了。

记住,如果你不想重启,记得source /etc/profile。

搞定之后,java -version一下,如果版本信息出来了,就说明安装成功了。

安装mysql

首先,可以到mysql的网站下载5.7.23的社区版。注意哦,小编本次的安装的各个软件全部都是官网下载的~

解压:

tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

Move到/usr/local下:

mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local

使用ln创建软连接:

ln -s /usr/local/ mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql

参数讲解:

-s:soft,指软连接

添加用户组

sudo groupadd mysql

添加用户

sudo useradd -r -g mysql -s /bin/false mysql

注意,现在跑到mysql目录下,手动创建mysql-files文件夹,然后修改权限,

sudo chmod 750 mysql-files

sudo chown -R mysql .

sudo chgrp -R mysql .

然后手动初始化data文件夹,如下:

sudo bin/mysqld --initialize --user=mysql

然而,并不能成功,提示我们,安装libaio。好说,装之,

yum install  libaio-devel.x86_64 -y

如下:

继续初始化,得到了密码,如下,

请把密码记录下来哦,否则接下来登录不成功不要怪我~~

心情安逸的启动mysql,

sudo ./ _safe --user=mysql &

结果……发现启动不了,提示我们缺少了日志文件,如下,

mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

那既然这样,我们就去手动创建日志吧,

mkdir /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

创建完毕,发现还是启动失败,使用netstat -ntlp查看3306压根没在监听。

这个时候,刚才创建的mariadb.log日志就起大作用了,去查,发现没有pid文件,如下:

是的,我可能什么时候操作过强制关机导致pid文件丢失。那解决办法是首先去/etc/my.cnf 中查看pid-file的位置,如下,

在小编的机器中,这个文件位置是pid-file=/var/run/mariadb/mariadb.pid

同样,让我们手动创建对应的目录并修改权限

mkdir -p /var/run/mariadb

chown mysql.mysql /var/run/mariadb

这时可以尝试重启mysql了,如果还不行继续则继续创建一个pid文件并修改权限

touch /var/run/mariadb/mysqld.pid

chown mysql.mysql /var/run/mariadb/mysqld.pid

再次启动MySQL。就没有问题了。

现在,使用mysql -uroot -p登录,结果还是有问题:

奔溃ing……

没办法了,让我们继续查找mysql.sock在哪里,

find / -name mysql.sock

结果发现是在/var/lib/mysql/mysql.sock。好的,让我们带上这个路径,如下:

./mysql -uroot -p -S /var/lib/mysql/mysql.sock

启动成功。

输入最开始的初始化密码,登录成功之后,让我们第一件事情就是修改初始密码,如下:

mysql> SET PASSWORD = PASSWORD('新密码');

mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

mysql> flush privileges;

然后,顺便查一下mysql默认的数据库吧:

show databases;

安装tomcat

确定版本。8.5。

同样下载回来解压。注意哦,环境变量我们已经配置好了。

使用su命令切换到root模式下。进入tomcat安装目录的bin,运行命令:

./startup.sh

当当当,大功告成。

且慢,为什么tomcat启动了,但是外网要能访问到tomcat站点还得花很多分钟呢?

注意,这个问题导致小编一直以为前面某个环节配置有问题,浪费了不少时间。经过查看日志,发现是因为session所对应的随机数问题所导致。要解决这个问题,安装rngd服务,增大熵池即可。如下,

yum install rng-tools

systemctl start rngd  # 启动服务

ok,现在才是真正的大功告成,大家过个happy的周末吧~~

感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT的更多相关文章

  1. 阿里云CentOs7上安装JDK

    一.查看服务器是否已经预装了JDK 在拿到新机器以后,要先看下机器上是否已经预装了JDK,命令: rpm -qa|grep jdk 如果有的话,卸载openjdk(无需输全称).命令: yum -y ...

  2. 在阿里云centOS7上部署Redis 5.0.5主从 + 哨兵模式

    一.在两台服务器上分别安装.配置Redis 5.0.5 ,为一主一从 安装Redis关键命令: 将安装包上传至:/home 目录下解 压:.tar.gz 安装依赖:yum install gcc 安装 ...

  3. 在无界面centos7上部署jdk和tomcat

    1.安装xshell6 2.创建服务器连接,输入用户名和密码 3.输入 sudo su -root 获取root权限 4.输入 cd /usr/local 进入local文件夹 5.输入 wget - ...

  4. unigui在阿里云服务器上部署

    unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...

  5. 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】

    要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...

  6. 阿里云CentOs7上安装Tomcat

    一.下载安装tomcat8 cd /usr/ #创建tomcat目录 mkdir tomcat #从网上download 压缩包 wget tomcat8 url #解压 tar -zxvf apac ...

  7. 在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_85 在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+ ...

  8. 阿里云主机上安装jdk

    今天继续安装jdk到阿里云服务上,大家要看一下阿里云是32位还是64位的,如果是32位下载32位的包,如果是64位的下载64位的包 我的就是64位的,开始我还不知道是怎么区分32/64位的,原来X64 ...

  9. Linux学习2-在阿里云服务器上部署禅道环境

    前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...

随机推荐

  1. LN : leetcode 118 Pascal's Triangle

    lc 118 Pascal's Triangle 118 Pascal's Triangle Given numRows, generate the first numRows of Pascal's ...

  2. 源代码管理SVN的使用

    SVN 全称是Subversion,集中式版本控制之王者 SVN 版本控制,需要自己搭建一个管理代码的服务器,提供开发人员,上传和下载 1.基本介绍 使用环境 要想利用SVN管理源代码,必须得有2套环 ...

  3. java格式化sql

    在日志分析中,经常会对记录的sql进行分析,所以将一整行sql格式化,进行多行缩就显得很有必要,许多数据库客户端都提供sql的格式化功能,但复杂的多层嵌套sql往往格式化的l还不够友好,所以就自己造了 ...

  4. vue2.0自定义事件

    我们知道父组件是使用props传递数据给子组件,如果子组件要把数据传递回去,怎么办? 那就是要自定义事件!使用v-on绑定自定义事件 每个Vue实例都实现了事件接口(Events interface) ...

  5. CentOS 6.4 linux下编译安装MySQL5.6.14

    CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14. 正文: 一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm ...

  6. vue工程化引入组件模板

    vue脚手架搭建好项目后,组件间的引用通过components import bannerComponent from './banner' export default { data(){ retu ...

  7. java线程池 多线程 搜索包含关键字的文件路径

    package org.jimmy.searchfile20180807.main; public class ThreadMain implements Runnable{ private int ...

  8. 怎么在在php配置文件中打开php_fileinfo扩展

    运行composer下载文件时的相关报错截图 处理方法: 在php配置文件中打开php_fileinfo扩展 你需要在查看是否有这个扩展包, 如果有, 那就在php.ini写 extension=ph ...

  9. cc.Node—坐标系统

    cc.Vec21: cc.Vec2 二维向量坐标, 表结构{x: 120, y: 120}; cc.v2(x, y) 创建一个二维向量 cc.p() 创建一个二外向量;2: cc.pSub: 向量相减 ...

  10. 趣味ACM题——圣骑士的斩杀

    题目来源于山东省第七届ACM大学生程序设计竞赛(Execution of Paladin) 题目描述 鱼人是炉石里的一支强大种族,在探险者协会里,圣骑士有了一张新牌,叫亡者归来,效果是召唤本轮游戏中7 ...