• 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

    完毕。

  • 相关阅读:
    写在毕业散伙饭后
    关于2005年高考志愿填报注意事项与分析
    如何在ASP.NET页面间传送数据
    MS Server 2000中的Table类型
    离职申请[转]
    JQUERY 获取text,areatext,radio,checkbox,select值
    DropdownList用法记录
    SQL小记
    认识SortedList类
    js中的|| 与 &&
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/12080145.html
Copyright © 2020-2023  润新知