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
以上就是總結的部分采坑日志,和解決的方法,感謝這些大佬的無私奉獻,記錄在此,希望后面順順利利~
MySQL Nginx
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。