技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT
今日小编闲来无事,乘着公司新项目即将上线之际,在阿里云上整了一台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的更多相关文章
- 阿里云CentOs7上安装JDK
一.查看服务器是否已经预装了JDK 在拿到新机器以后,要先看下机器上是否已经预装了JDK,命令: rpm -qa|grep jdk 如果有的话,卸载openjdk(无需输全称).命令: yum -y ...
- 在阿里云centOS7上部署Redis 5.0.5主从 + 哨兵模式
一.在两台服务器上分别安装.配置Redis 5.0.5 ,为一主一从 安装Redis关键命令: 将安装包上传至:/home 目录下解 压:.tar.gz 安装依赖:yum install gcc 安装 ...
- 在无界面centos7上部署jdk和tomcat
1.安装xshell6 2.创建服务器连接,输入用户名和密码 3.输入 sudo su -root 获取root权限 4.输入 cd /usr/local 进入local文件夹 5.输入 wget - ...
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
- 阿里云CentOs7上安装Tomcat
一.下载安装tomcat8 cd /usr/ #创建tomcat目录 mkdir tomcat #从网上download 压缩包 wget tomcat8 url #解压 tar -zxvf apac ...
- 在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_85 在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+ ...
- 阿里云主机上安装jdk
今天继续安装jdk到阿里云服务上,大家要看一下阿里云是32位还是64位的,如果是32位下载32位的包,如果是64位的下载64位的包 我的就是64位的,开始我还不知道是怎么区分32/64位的,原来X64 ...
- Linux学习2-在阿里云服务器上部署禅道环境
前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...
随机推荐
- Toolbar自定义布局
Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局.打开ToolBar源码我们发现它继承ViewGroup,这就表示我们 ...
- 机器学习-Probabilistic interpretation
Probabilistic interpretation,概率解释 解释为何线性回归的损失函数会选择最小二乘 表示误差,表示unmodeled因素或随机噪声,真实的y和预测出来的值之间是会有误差的, ...
- IDEA安装使用
下载地址: https://www.jetbrains.com/idea/download/previous.html 这里我下载的是:2016.3.8版本的 安装: 安装成功后,需要秘钥的话,在 h ...
- 获取请求服务器传输协议http or https
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PO ...
- ubuntu18.04 python版本切换
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了python2.7和pyt ...
- 详解 pcap_findalldevs_ex
pcap是packet capture的缩写.意为抓包. 功能:查找所有网络设备 原型:int pcap_findalldevs_ex(char* source, struct pcap_rmtau ...
- CAD参数绘制mcdbsolid对象(com接口)
C#中实现代码说明: private void DrawSolid() { //绘McDbSolid对象 axMxDrawX1.AddLinetype("MLineType1", ...
- CAD使用DeleteXData删除数据(com接口)
主要用到函数说明: MxDrawEntity::DeleteXData 删除扩展数据,详细说明如下: 参数 说明 pzsAppName 删除的扩展数据名称,如果为空,删除所有扩展数据 c#代码实现如下 ...
- C89:应用篇 文件管理器
一.简介 用C语言做的一个文件管理器的轮子,因为经常开发中会用到跟数据流有关的,做完会放到Github上
- Kotlin – CharSequence IsNullOrBlank() vs IsNullOrEmpty()
本文摘自:http://blog.farifam.com/2018/01/28/kotlin-charsequence-isnullorblank-vs-isnullorempty/ Koltin p ...