欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

程序员文章站 2022-03-25 16:23:37
今日小编闲来无事,乘着公司新项目即将上线之际,在阿里云上整了一台centos作为测试机。原本以为一个小时搞定,结果还是花了一点小小时间。不管怎么说,记录下来,给各位小白当成课后甜点吧。 价格 先上价格,809.4RMB。 这个价格也就是一顿大餐的事情,BUT,作为程序员的你,未来的一年这台机器都是属 ......

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

价格

        先上价格,809.4rmb。

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

        这个价格也就是一顿大餐的事情,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的列表界面,点更多->安全组配置,

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

        这是具体的配置规则

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

        配置完毕后,我们在家中的沙发上就可以去访问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

        如下:

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

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

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

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

        心情安逸的启动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'.

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

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

        mkdir /var/log/mariadb 

        touch /var/log/mariadb/mariadb.log 

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

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

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

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

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

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

        在小编的机器中,这个文件位置是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登录,结果还是有问题:

技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

        奔溃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

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