Liunx部署中出现的坑
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
以上就是总结的部分采坑日志,和解决的方法,感谢这些大佬的无私奉献,记录在此,希望后面顺顺利利~
- 点赞
- 收藏
- 关注作者
评论(0)