热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署

本文介绍了CentOS7下MySQL5.7、Java、Tomcat、Maven热部署等服务器环境的搭建和调试过程。学生服务器资源获取方法:云+校园计划-腾讯云阿里云云翼计划gith

本文介绍了CentOS7 下MySQL5.7、Java、Tomcat、Maven热部署等服务器环境的搭建和调试过程。

学生服务器资源获取方法:

  1. 云+校园计划 - 腾讯云
  2. 阿里云云翼计划
  3. github 学生包,里面有Digital Ocean 50美元的VPS可用

已经将所需要的工具(Xshell,Xftp、FileZilla等sftp上传工具,jdk-8u101-linux-x64.tar.gz和apache-tomcat-9.0.0.M10.tar.gz)上传至百度云 http://pan.baidu.com/s/1qYRms8G

安装MySQL5.7

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载

# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
# yum install mysql-community-server
# 成功安装之后启动mysql服务
# systemctl start mysqld.service
# 初次安装mysql是root账户是没有密码的,需要我们自己设置密码
# mysql -uroot
# mysql>set password = password("你的密码");
# mysql>flush privileges;
# mysql> exit

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

安装完MySQL5.7后 执行 mysql -uroot首次登陆会出现此问题,原因是 MySQL5.7设置了临时密码。

$sudo cat /var/log/mysqld.log  | grep password
2017-04-14T11:45:46.950302Z 1 [Note] A temporary password is generated for root@localhost: NS_E#kj!E5lJ
$mysql -uroot -pNS_E#kj!E5lJ

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。简单点说就是系统认为密码太简单,设置复杂点就行了。如 !QAZ2wsx

设置MySQL远程连接

进入MySQL后通过

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

可以允许任意主机访问你在服务器搭建的MySQL,可以吧%更换为你需要允许的IP和主机。

但是,在我进行远程连接的时候发生如下错误
CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署
可以根据下面进行排错

  1. 服务器是否可以访问,是否能ping 通
  2. 安全组及端口号是否打开或者被占用
  3. 服务器是否运行或者关闭只允许本机访问
  4. 重启试试

当我排除上面3中情况后,发现属于第四中,可能是因为还没有立即生效。

解决MySQL中文乱码问题

在我建立数据时发现中文无法插入,于是查看使用show variables like 'character%';
如图所示,发现默认不是utf-8,如图:
CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署

于是通过在CentOS7中修改文件/usr/share/mysql/my-default.cnf,在[mysqld],[mysql],[client]下分别添加如下内容:

[mysqld]
collation-server = utf8_unicode_ci
init-cOnnect='SET NAMES utf8'
character_set_server = utf8

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

修改完成后,重启mysql服务,systemctl restart mysql,然后进入mysql,再次使用show variables like 'character%';命令查看,如图:
CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署
发现一样,说明utf-8可以使用,但是无法插入中文,于是猜测可能是系统原生不支持utf-8,更改系统编码后发现果然如此。

# cat /etc/locale.conf
LANG="en_US.UTF-8"
# vim /etc/locale.conf
# cat /etc/locale.conf
LANG="zh_CN.UTF-8"

于是更改为

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFOnT="lat0-sun16"

执行 source /etc/locale.conf或者重启服务器之后,再次重启MySQL服务。

如图,发现可以插入中文。

CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署

解决MySQL忘记密码

通过跳过权限安全检查设置新密码。

  1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql
    ,然后打开第一个cmd1窗口,切换到mysql的bin目录,运行命令:mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.5\my.ini" --console --skip-grant-tables,将命令中的MySql版本更换你的版本。
    该命令通过跳过权限安全检查,开启mysql服务,这样连接mysql时,可以不用输入用户密码
    此时已经开启了mysql服务了!
    这个窗口保留不关闭
  2. 打开第二个cmd2窗口,连接mysql
    • 输入命令:mysql -u root -p
      出现: Enter password: ,在这里直接回车,不用输入密码。 然后就就会出现登录成功的信息。
    • 使用命令切换到mysql数据库:use mysql;
    • 使用命令更改root密码:UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
    • 刷新权限:FLUSH PRIVILEGES;
    • 然后退出,重新登录:quit
    • 重新登录: 可以关掉之前的cmd1 窗口了。
  3. 然后用net start mysql 启动服务
    • 登录:mysql -u root -p
    • 出现输入密码提示,输入新的密码即可登录:Enter password: ***********

显示登录信息: 成功 就一切ok了

Java环境配置

环境准备

通过uname -r判断系统是多少位

  • 64位 : 出现x86_64
  • 32位 : 出现i686或i386

安装Java JDK8.0

  1. 建立Java目录,存放Java和Tomcat
    • cd /usr/local/
    • mkdir Java
    • cd Java
  2. 使用FileZilla将下载好的jdk-8u101-linux-x64.tar.gz 和 apache-tomcat-9.0.0.M10.tar.gz上传至Java目录下(传送的国外服务器很慢,国内几乎是国外的十倍,但是也只有两三百KB,也可能是电脑问题)
  3. 将上传的jdk解压,然后重命名为jdk
    • tar -zxv -f jdk-8u101-linux-x64.tar.gz
    • mv jdk1.8.0_101 jdk
    • cd jdk
  4. 配置环境变量EnvirOnment=JAVA_HOME=/usr/local/Java/jdk
    1. vim /etc/profile
    2. 打开之后按键盘(i)进入编辑模式,将下面的内容复制到底部
    JAVA_HOME=/usr/local/Java/jdk
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
    export PATH JAVA_HOME CLASSPATH
    
    1. 写完之后我们按键盘(ESC)按钮退出,然后按(:wq)保存并且关闭Vim。
    2. 使用 source /etc/profile命令使其立即生效
    3. 通过java -version验证Java是否配置成功。

安装Tomcat9
  1. 在Java目录下解压上面一步已经上传上去的Tomcat9.0
    • tar -zxv -f apache-tomcat-9.0.0.M10.tar.gz
    • mv apache-tomcat-9.0.0.M10 tomcat
    • cd tomcat
  2. 启动命令为 /usr/local/Java/tomcat/bin/startup.sh
  3. 启动完成后还需开放8080端口(CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样。 关于防火墙端口可以查看后面的参考文档)
    • firewall-cmd --zOne=public --add-port=8080/tcp --permanent
      出现success表明添加成功
    • 更新防火墙规则即可: firewall-cmd --reload
    • 重启防火墙 systemctl restart firewalld.service
  4. 然后再次在浏览器中输入http://ip:8080,如果看到tomcat系统界面,说明安装成功。
  5. Tomcat 8080 端口无法访问
    • 查看8080端口被那个程序占用(应该是Java) netstat -anp 然后再杀死占用进程。
    • 可能是你的服务器提供商有安全组来控制端口,你需要去提供商那里开启端口(PS:我的阿里云服务器就是必须要设置端口安全组才可以访问端口)
  6. 关闭命令为 /usr/local/Java/tomcat/bin/shutdown.sh

Maven 热部署

Maven 热部署可以通过一行命令部署到本地服务器,没有问题的话就一行命令部署到正式服务器。及其方便了开发和部署。因为我的Tomcat9遇到很多问题。
可以参考 maven自动部署到远程tomcat教程 进行部署和测试。

下面是我遇到的一个错误,因为没有配置IDEA的make 导致出错。

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project liwenhao: Cannot invoke Tomcat manager: Connect
ion reset by peer: socket write error -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]

可以通过将make如下配置
CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署
即可成功

war包部署在服务器乱码

CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署
可以通过配置如下属性,解决中文war包服务器乱码。


    UTF-8
    UTF-8

配置完图。
CentOS7  MySQL5.7安装、JDK8安装、Tomcat安装、Maven热部署

在我通过mvn tomcat7:deploy命令热部署时,会出现mysql无法连接的情况,后来在我重新进行热部署的时候,没有出现这个问题。
猜测
应该是我的配置文件的问题

参考文档

  1. centos 7 开放 80端口
  2. centos7 设置中文
  3. CentOS 7下彻底卸载MySQL数据库
  4. CentOS7 远程访问MySQL
    • Centos 7 mysql 5.7 给root开启远程访问权限,修改root密码
    • 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
  5. How To Install Apache Tomcat 8 on CentOS 7
  6. windows环境中mysql忘记root密码的解决办法

推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境
    PHP程序员玩转Linux系列搭建FTP代码开发环境-PHP程序员玩转Linux系列文章:有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家 ... [详细]
  • linux ftp 线程数设置,Linux搭建ftp在windows下这么访问,需要怎么设置【设置vsftp最大连接数和每个ip的最大连接数】...
    文章来源:http:zhidao.baidu.comlink?urlLOfStD1kcxGhI_D5qC7oka3_4QZc1nn1SJwWaSd4onWoVl5Wt ... [详细]
  • Windows下实用工具整理
    Windows下实用工具整理命令工具cmder支持tab标签、集成git、支持绝大UnixLinux命令。但是安装之后一般都会有以下几个问题:中文乱码问题、文字重叠问 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
  • SVN 功能说明(简版)
    Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • FTP服务ftp的报错及用户管理
    ftp服务常见报错530报错认证失败(密码错误或者服务端拒绝)550服务本身未开启553文件系统不可写(权限问题)500服 ... [详细]
  • 用lvm+vmware+kickstart实现系统自动安装和快照安装
    由于我的机子是32位,装不了64位系统,所以无法使用kvm,只能用vmware了,可是vmware安装使用自带的autoinst.iso实现自动安装,无法实现我的需求,经过研究我使用kic ... [详细]
  • 阿里云如何部署php(2023年最新分享)
    导读:很多朋友问到关于阿里云如何部署php的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
author-avatar
545229628_efb16a
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有