Liunx部署中出现的坑

举报
多米诺的古牌 发表于 2021/12/29 16:37:06 2021/12/29
【摘要】 1.背景在一个空服务器上从头开始部署的时候,心情多少都是有些忐忑的,尤其是你的权限还不够,防火墙不知道开没开的情况下就更难受了,下面总结下部署中遇到的一些坑,防止今后在碰到类似情况。2.Mysql部署由于不能将3306端口暴露到外部访问接口,所以对3306接口进行映射处理比如映射到9527(这个具体怎么映射的后面再做研究,这里是交给对方完成的),在安装完mysql服务后(重置密码),此时进行...

1.背景

在一个空服务器上从头开始部署的时候,心情多少都是有些忐忑的,尤其是你的权限还不够,防火墙不知道开没开的情况下就更难受了,下面总结下部署中遇到的一些坑,防止今后在碰到类似情况。

2.Mysql部署

由于不能将3306端口暴露到外部访问接口,所以对3306接口进行映射处理比如映射到9527(这个具体怎么映射的后面再做研究,这里是交给对方完成的),在安装完mysql服务后(重置密码),此时进行登录会发生权限不够的情况。

报错1: java.net.ConnectException: 拒绝连接 (Connection refused)和com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

我出现的情况是因为mysql权限中本地访问和远程访问权限未设置,可以通过下面这位大佬的解决方法将权限设置一下,然后刷新权限完成。

参考1:MySQL远程访问权限,同时允许远程连接和本地连接

参考2:MySQL8.0本地访问设置为远程访问权限

报错2:JeecgBoot启动提示:QRTZ_LOCKS表不存在

这个坑是导入建表sql的时候出现的,开始一直以为是这张表有问题,最后经过大佬指点才发现是mysql的大小写识别的问题,可以参考如下大佬的帖子:

参考1:JeecgBoot启动提示:QRTZ_LOCKS表不存在

需要注意的是,这里的配置文件名称可能是my.cnf,可以通过

which mysql #查找mysql在哪里
find / -name my.cnf #查找mysql的配置文件在哪里

最后再my.cnf文件中加上lower_case_table_names=1表示不区分大小写就可以了

最最后面一定要重启mysql 要不不会生效的!!!重启mysql的指令是 

service mysql restart

注:重置密码可以执行指令,其中password 为你新设置的密码。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 

然后一定记得刷新权限

FLUSH PRIVILEGES; 

你以为这样就完了吗,坑还多着呢= =

报错3:在报错2解决后发现后端启动的时候报拒绝访问

解决办法是:当时外部访问(比如Navicat连接使用的是外网ip+映射过的的端口号),而后端项目中由于是和数据库是在一台服务器上,所以访问的时候需要将配置文件中的url的ip携程localhost或127.0.0.1

注1:这里还有一个坑就是,需要参考报错2  查看当前mysql用户里面的user表里到底有什么,当时我这里只有localhost没有127.0.0.1所以一直访问不成功,改成localhost后解决。

注2:此时的url中的ip后面的端口号一定一定是3306这个mysql的默认端口号,不能是映射的端口号(这个找了半天才发现。。。)

3.部署过程中的坑

坑1:权限不够

由于给我的权限不是root的权限,但是可以执行root的权限(这里之后再进行研究),只要将指令前加 sudo就可以了,比如  sudo 各种需要执行的指令(像sudo ls 像 sudo mkdir 创建一个文件夹);

坑2:jar包关后台就会停掉

由于启动是用java -jar 具体jar包来进行执行的,但是一旦将xshell关闭,就服务就会停

解决方法是:(记得一定要加&)

nohup java -jar test.jar &

查看java程序或者端口号的执行进程的指令是:

#查看java进程
netstat -anp | grep java

#查看某个端口的进程
netstat -anp | grep 端口号
比如 netstat -anp | grep 9527

如果想想结束进程可以通过

kill -9 端口号
比如 kill -9 9527

坑3:跳转微信小程序的开放标签中的path

这里的path必须是下图这种小程序开放的源码中的地址,而不能是我们能点击跳转的外部地址,如果不知道,只要保障username正确就行了(必填),path是非必填的所以给个""空值就可以正常跳转了。

坑4:这个是查看vim的时候权限不够

参考1:vim修改权限: E45: 已设定选项 'readonly' (请加 ! 强制执行)

4.安装过程的参考文档

4.1 安装JKD1.8:

参考1:Linux安装JDK1.8(看这一篇就够了) 附安装包下载地址

4.2 安装redis和部署

参考1:redis和部署

4.3 安装nginx

参考2:linux下安装nginx

参考1:nginx配置虚拟主机vhost的方法详解

坑1:nginx: [emerg] getpwnam(“nobody”) failed

参考1:nginx: [emerg] getpwnam(“nobody”) failed

坑2:nginx: [error] open() "/usr/local/nginx//logs/nginx.pid" failed (2: No such file or directory)解决方式

参考2:nginx: [error] open() "/usr/local/nginx//logs/nginx.pid" failed (2: No such file or directory)解决方式

坑3:nginx报错open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or director

参考3:nginx报错open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or director

以上就是总结的部分采坑日志,和解决的方法,感谢这些大佬的无私奉献,记录在此,希望后面顺顺利利~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。