使用Linux部署java_web项目的一些坑和解决方法

数据库的安装

考虑到mysql不能一直用5.0,就想在linux上安装mysql8.0,步骤和要点如下:

  • 先用 rpm -qa | grep mysql 看看是否有mysql已经被安装过。如果有则先用 rpm -e 删除

  • https://dev.mysql.com/downloads/repo/yum/ 下载yum的仓库源,这是一个rpm文件,可以windowns通过lzsrs把它拖动到文件夹,也可以直接在linux下用以下命令来下载。

    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
    
  • 下载得到一个名为mysql80-community-release-el7-11.noarch.rpm的文件,使用命令rpm -ivf mysql80-community-release-el7-11.noarch.rpm 安装这个rpm

  • 安装这个源以后。会在/etc/yum.repos.d/新增两个文件,他们叫做yum源,定义了yum安装某个软件时从那个网址下载资源以及各种资源的依赖关系,让yum可以安装mysql-comunity-server等软件。

  • 可以用vim修改mysql-community.repo文件,这样就可以下载5.7而不是8.0,但我选择8.0

  • 开始安装服务端,客户端,和开发工具包:yum -y install mysql-community-client mysql-community-server mysql-community-devel 这三个组件都需要安装,一个服务端,一个

  • 程序安装完后,rpm-qa | grep mysql应该就能看到这几个组件了。

  • 启动Mysql服务,并设置开机启动:

    • systemctl start mysqld
    • systemctl enable mysqld

这样数据库就安装好了

第一次进入数据库
  • 如果安装过程会给你一个随机密码的,那是root的初始密码。但大部分人都会错过,你可以到**/var/log/mysqld.log** 这个文件找到初始的随机密码,大概在第2~4行的样子。
  • 也可以用另一种方式修改密码。
    • 先在**/etc/my.cnf**这个文件添加一句命令:skip-grant-tables,重启mysqld服务:systemctl restart mysqld就可以实现免密登录。
    • mysql -uroot -p 让你输入密码就按回车。
    • alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass@123'用这个命令来重置root的密码。注意,因为mysql8的新规定,要求密码有大小写字母和特殊符号,否则不让通过。
    • 修改好密码后,退出mysql,把**/etc/my.cnf**文件的skip-grant-tables这行命令删掉,重启服务,就能正常登陆。
修改密码
  • 开发时期用这么难的密码太碍事了,我们可以修改密码策略等级,来允许我们设置比较简单的密码。
    • set global validate_password.policy=0 可以让密码策略等级设置成最低。
    • set global validate_password.length=4 可以让密码最短为4位
    • 但这只是暂时性的修改,一旦关闭mysql就又变成原来的了,但这也是我们需要的效果。
  • 因为mysql8.0是用了新的密码加密模式来存储数据的,所以第三方可视化工具一般是不能登录的。我们可以把**/ect/my.cnf**下的default-authentication-plugin=mysql_native_password 激活*(前面的井号去掉)*,这样就自动把密码存储格式变回8.0之前的,也可以把单个用户的密码改成用以前的策略加密:
    • alter user ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘admin’ 这样就能把密码以之前的策略加密。
  • 最后,因为mysql8.0默认是不允许远程登录的,root的host是localhost。只能从本地登录,用以下命令可以把指定用户的host变成% ,这样就能从任意主机访问这个用户了。
    • update user set host = ‘%’ where user = ‘root’;(其实就是简单的修改数据库表)
  • 大功告成,现在可以从任意主机的任意第三方软件访问linux虚拟机上的数据库啦。
修改时区问题
  • mysql8.0的一个好处就是不用专门修改字符集,但是时区还是会乱的。要在/etc/my.cnf中修改:

    default-time_zone = '+8:00'
    

    my.cnf 是mysql的所有配置文件,想执行任何持久化的配置都应该修改这里的信息。

其他软件的安装
tomcat和jdk
  • tomcat和java都只需要解压安装,然后配置/etc/profile即可
Redis的安装
  • 解压好在官网下载的redis以后,进入目录直接执行make install 命令就可以编译安装,安装完成输入make test可以尝试redis是否安装成功
部署过程中踩到的坑:
  • 必须保证linux中的jdk版本大于等于项目依赖的jdk版本,我就是因为linux的jdk版本太低,以至项目报404错误。
  • 有时验证码无法显示,我也不知道原因,按照网上的方法就可以解决:
    • 找到${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat)。
    • 查找到-Djava.io.tmpdir="$CATALINA_TMPDIR"这行,
    • 并在这一行下加入:-Djava.awt.headless=true \,总共有7处需要添加。

目前就这些,有再来更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值