Ubuntu18.04搭建测试环境

前言

  说一下我的情况,之前由于我的云服务器数据库的root账号密码123456太简单,而在之前的博客中也泄露出了我的云服务器的IP地址,导致有人远程连接我的数据库,删除了项目数据库里的数据只剩下WARNING了,哈哈,有点意思。所以我就重新运行sql文件,但是涉及到timestamp默认值时,sql文件又无法正确执行了,这是由于ubuntu1804默认安装的是mysql5.7,而在mysql5.7中timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' 并不可行,折腾无果后我选择安装mysql8,在此之前完全卸载清除掉mysql5.7,在安装mysql8过程中按照网上的攻略步骤,选择的是5.7的加密模式,防止安装完成后启动mysql输入账户名密码无效,然而即使这样我再安装完成启动mysql8输入设置的密码还是不行。这就有点尴尬了。这就无解了。有网友说他重装系统几次后避免了这种情况,但这代价有点大呀,所以我去腾讯云服务器后台重启实例看看,然而重启之后却再也登不上了,ssh连接不上,vnc也不行,提交工单给客服,腾讯工程师回复:

 

 

 

 

 

  一顿操作后建议我重装系统。好吧,那就重装吧,重新搭建测试环境,重装mysql,jdk,tomcat,部署项目,虽然费点时间,但也能提升我的操作熟练度,之前有些过程都忘了,也算祸兮福所倚。

  接下来进入具体搭建过程。所谓的搭建、部署测试环境,说得好像很高大上,其实就是装几个软件,改改配置而已。

安装tomcat

什么是tomcat?

  Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
  当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

下载安装包

先去官网下载安装包,我的是上个月下载过的,apache-tomcat-8.5.47.tar.gz,通过File Zilla等工具传到服务器上,放在/usr/local下面,或者放在/opt下面,我就直接放在/opt下面了。

解压

解压tar.gz包:tar -xvzf  apache-tomcat-8.5.47.tar.gz ,就解压到/opt里面,

解压完毕,进到里面看看:

tomcat各个目录结构说明:

bin

linux或windows平台上可执行的脚本文件都放在里面,.sh是linux系统下的,.bat是windows系统下的。

 其中shutdown.sh 和 startup.sh就是关闭和启动Tomcat的脚本。

conf

这里放的是Tomcat服务器的各种全局配置文件,其中包括

  1. server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码
  2. web.xml可以设置tomcat支持的文件类型
  3. context.xml可以用来配置数据源之类的
  4. tomcat-users.xml用来配置管理tomcat的用户与权限,保存tomcat的用户名,密码,角色信息
  5. 在Catalina目录下可以设置默认加载的项目

lib

lib目录主要用来存放tomcat运行需要加载的jar包。例如,像连接数据库的jdbc的包就可以加入到lib目录中来。

 

logs

logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)
在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中,在linux环境中,控制台的输出日志在catalina.out文件中。

temp

temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)。

webapps

webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。
当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。

work

work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。

其他的如license:许可证 ,notice:说明文件 , running.txt:运行说明文件。。

此时去bin目录运行startup.sh启动tomcat,会提示JAVA HOME和JRE HOME环境变量都没有被定义,至少需要其中一个环境变量来运行tomcat:

 

 很显然,tomcat的运行时依赖java环境的。

下面进入jdk的安装。

安装JDK

什么是jdk?

  JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

下载jdk

直接在官网下载jdk8,可能下载速度不理想。

我下载的是 jdk-8u192-linux-x64.tar.gz,把下载后的安装包,传到opt目录下,同上tomcat。

解压

tar -xvzf  jdk-8u192-linux-x64.tar.gz ,进入jdk1.8.0_192:

目录结构说明

bin

bin目录里面存放了JDK的各种工具命令,即JDK开发工具的可执行文件。其中这些可执行文件都是二进制的,其中包括编译器、解释器以及其他一些工具,比如我们刚开始用的Javac、Java命令去检查JDK是否安装配置正确就是在这个目录下面的命令。

 

include

include目录里面是一些供C语言使用的标题文件,其中C语言的头文件支持Java本地接口和Java虚拟机调试程序接口的本地编程技术。这里头文件的作用是让Java调用C/C++实现的函数功能。

jre

jre(Java runtime environment即Java运行时环境)目录路径下安装的就是运行Java程序所必须的JRE环境。

lib

其中lib目录:该路径下存放的是JDK工具命令的实际执行程序。

配置环境变量

编辑文件:vim /etc/profile

在末尾加入下面几行:
export JAVA_HOME=/opt/jdk1.8.0_192  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  

 

 保存退出。

执行:source /etc/profile    使配置生效。

 

此时再回到tomcat下面的bin目录执行startup.sh启动tomcat:

 

 浏览器输入ip+8080:看到一只猫就行了。

 

 若没看到记得去云服务器安全组开放8080端口。

安装mysql8

mysql5.7只能适配到ubuntu17,所以18之后就直接上8,8的性能较5.7有了很大的提升。

具体步骤

 下载deb包:mysql-apt-config_0.8.14-1_all.deb        https://dev.mysql.com/downloads/repo/apt/

sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb
sudo apt update

   接下来安装的就是mysql8了:

sudo apt install mysql-server

选择第一个,回车

选择mysql8回车

 选择ok,回车

中间还要输入密码。

选择加密方式5.x,不然可能会登录不进去。

 

 

 。。。

然后就是慢慢等了。也可更换镜像源加快安装过程。

最后登陆进去:

mysql -u root -p

输入设置的密码。

ok。

 

 

然后就是部署项目了

 

将我的那个接口项目war包放到apache下面的webapps里面,将jdbc.properties和log4j.properties放到apache下面的conf里面。

编辑jdbc.properties,修改ip和账号密码,连接驱动。

 

然后去请求接口,报错了!!!

查看日志,apache/logs/catalina.out,说是:Mysql| java.sql.SQLException: Unknown system variable 'tx_isolation'

网上搜了一番,说是,mysql之前的版本用的是tx_isolation,mysql8更名为transaction_isolation

所以去设置:mysql> set global transaction_isolation='READ-COMMITTED'

重启mysql。

再去请求接口,还是报错。

有人说要升级版本,war包里的项目用的是mysql5.1.11,应该升级到mysql8。

找到pom.xml。

 更该版本号:

重启tomcat,还是报错。

查看日志:java.sql.SQLException: No suitable driver。

https://dev.mysql.com/downloads/connector/j/下载ubuntu1804的Connector,是.deb格式的。

我先转换为rar,在windows上解压得到:

 

 

 

 把这个连接jar包放到我的 /opt/apache-tomcat-8.5.47/webapps/futureloan/WEB-INF/lib 里面,并将里面的5.1.11的连接bao移走。

 

重启tomcat;

再次报错。这回是:

 

 找到这段代码:vim /opt/apache-tomcat-8.5.47/webapps/futureloan/META-INF/mybatis/memberMapper.xml

这难道又是mysql8带来的问题吗?网上找了好久,在几个mysql群里也问了,没人回,果然所谓的qq学习群都是渣渣。唉,心态炸了。

看来我还是得滚回mysql5.7了,尽管不适配,但之前也用过,问题不大。

总结:软件最新的不一定是最合适的。

安装mysql5.7

这个就简单多了。

apt install mysql-server

一路yes。

安装后直接输入mysql就进入mysql了。

配置mysql允许远程访问:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉 bind-address          = 127.0.0.1   即可。

然后就是赋权:

mysql> grant all privileges on *.* to root@'%' identified by 'mima' with grant option;

mysql> flush privileges

重启mysql:

service mysql restart

完毕。

posted @ 2019-12-22 16:29  天青色wy  阅读(716)  评论(0编辑  收藏  举报