From 9fe8a5e8f43bdea57f42e11b9e2e2d23c7ae8e04 Mon Sep 17 00:00:00 2001 From: qiuwww <1014913222@qq.com> Date: Mon, 30 Oct 2023 23:00:59 +0800 Subject: [PATCH] update --- .gitignore | 2 + ...270\212\351\203\250\347\275\262Jenkins.md" | 129 --------- .../Maven\345\256\211\350\243\205.md" | 9 - .../MySQL\346\223\215\344\275\234.md" | 269 ------------------ .../Nginx\344\275\277\347\224\250.md" | 137 --------- .../Node.js\345\256\211\350\243\205.md" | 57 ---- .../gitlab\351\203\250\347\275\262.md" | 58 ---- .../git\345\256\211\350\243\205.md" | 30 -- ...57\345\242\203\351\203\250\347\275\262.md" | 5 - ...70\350\247\201\346\223\215\344\275\234.md" | 14 - .../pm2.md" | 79 ----- ...62\344\270\216\346\223\215\344\275\234.md" | 39 --- .../ssh.md" | 1 - ...50\347\275\262\346\234\215\345\212\241.md" | 59 ---- ...50\347\232\204\350\275\257\344\273\266.md" | 24 -- ...17\346\234\215\345\212\241\345\231\250.md" | 72 ----- ...44\272\216java\351\241\271\347\233\256.md" | 13 - ...45\346\225\260\346\215\256\345\272\223.md" | 13 - ...00\345\217\221\350\247\204\345\210\222.md" | 41 --- ...05\351\201\223\351\203\250\347\275\262.md" | 25 -- ...20\347\273\264\346\223\215\344\275\234.md" | 231 --------------- 21 files changed, 2 insertions(+), 1305 deletions(-) delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Linux\344\270\212\351\203\250\347\275\262Jenkins.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Maven\345\256\211\350\243\205.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/MySQL\346\223\215\344\275\234.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Nginx\344\275\277\347\224\250.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Node.js\345\256\211\350\243\205.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/gitlab\351\203\250\347\275\262.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/git\345\256\211\350\243\205.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/java\347\216\257\345\242\203\351\203\250\347\275\262.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/linux\345\270\270\350\247\201\346\223\215\344\275\234.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/pm2.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/redis\351\203\250\347\275\262\344\270\216\346\223\215\344\275\234.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/ssh.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/static\345\255\230\345\202\250\346\234\215\345\212\241\345\231\250\351\203\250\347\275\262\346\234\215\345\212\241.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/tool.jima101.com\351\205\215\347\275\256-\345\256\211\350\243\205\345\270\270\347\224\250\347\232\204\350\275\257\344\273\266.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/verdaccio\345\273\272\347\253\213\350\207\252\345\267\261\347\232\204npm\351\225\234\345\203\217\346\234\215\345\212\241\345\231\250.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\205\263\344\272\216java\351\241\271\347\233\256.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\214\346\255\245\346\225\260\346\215\256\345\272\223.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\216\347\273\255\345\274\200\345\217\221\350\247\204\345\210\222.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\347\246\205\351\201\223\351\203\250\347\275\262.md" delete mode 100644 "15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\350\277\220\347\273\264\346\223\215\344\275\234.md" diff --git a/.gitignore b/.gitignore index aa845107..b770b5a1 100755 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ _learn-blog/hexo-website/source/imgs _learn-blog/hexo-website/source/_posts qiuwww.github.io + +15.运维操作及环境配置 diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Linux\344\270\212\351\203\250\347\275\262Jenkins.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Linux\344\270\212\351\203\250\347\275\262Jenkins.md" deleted file mode 100644 index d7d8f539..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Linux\344\270\212\351\203\250\347\275\262Jenkins.md" +++ /dev/null @@ -1,129 +0,0 @@ -# Linux 上部署 Jenkins - -## docker + jenkins + gitlab 项目部署的原理 - -1. 本地代码 push 到 gitlab -2. gitlab 通过 webhook 通知到 jenkins -3. **jenkins 拉取 gitlab 仓库代码,并执行 shell 脚本** - 1. 这个时候就需要一个 gitlab 的账户权限,这个容易理解; -4. shell 脚本执行 docker 命令,打包项目 -5. 安装 nginx,并把打包好的 dist 目录映射到 nginx 代理目录下 -6. 部署成功,访问服务器 ip+端口号访问你的项目 - -```bash -yum search jdk -``` - -## [Linux 安装 jdk1.8](https://blog.csdn.net/qq_25646191/article/details/109097265) - -1. https://www.cnblogs.com/whtbky/p/13667188.html - -需要先安装 java1.8 => 选择到 JDK 官网上下载你想要的 JDK 版本,下载完成之后将需要安装的 JDK 安装包上传到 Linux 系统指定的文件夹下,并且命令进入该文件夹下。 - -```bash -// 这里不行,还是要手动下载然后上传 -wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn/java/jdk/8u261-b12/a4634525489241b9a9e1aa73d9e118e6/jdk-8u261-linux-x64.tar.gz - - -tar -xvf jdk-8u261-linux-x64.tar.gz -C /usr/lib/jvm - -# /usr/lib/jvm/jdk1.8.0_261 - - -``` - -## 堡垒机文件上传 - -1. 直接连接文件上传; -2. 到 tmp 目录下面把文件移动到你需要的对应的目录下面即可; - -## 配置环境变量 - -1. vim /etc/profile -2. 插入如下: - -``` -export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261 -export PATH=$JAVA_HOME/bin:$PATH -export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar -``` - -3. 重新载入配置文件: source /etc/profile - -## yum install jenkins - -1. yum install jenkins - 1. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo - 2. sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key - 3. sudo yum install jenkins -2. vi /etc/sysconfig/jenkins,修改配置文件 -3. 输入启动命令以启动 Jenkins 服务。`service jenkins start` -4. vi /etc/rc.d/init.d/jenkins - 1. /usr/lib/jvm/jdk1.8.0_261/bin/java -5. 软连接: `ln -s /usr/lib/jvm/jdk1.8.0_261/bin/java /usr/bin/java` -6. 修改服务端口:8089 - -firewall-cmd –zone=public –add-port=8089/tcp –permanent - -firewall-cmd --query-port=8089/tcp firewall-cmd --permanent --add-port=8089/tcp - -## 配置 Jenkins - -说明:默认安装目录 - -(1)/usr/lib/jenkins/:jenkins 安装目录,WAR 包会放在这里。(2)/etc/sysconfig/jenkins:jenkins 配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。(3)/var/lib/jenkins/:默认的 JENKINS_HOME。(4)/var/log/jenkins/jenkins.log:Jenkins 日志文件。 - -(1)修改默认端口号编辑文件:vim /etc/sysconfig/jenkins - -找到 JENKINS_PORT,修改默认(8080)的端口号,我这里改为 8081 - -(2)修改 jdk 配置编辑文件:vim /etc/init.d/jenkins - -找到 candidates 在第一行 加入 自己的 jdk 的 java 路径 - -注:linux 查看 jdk 安装路径命令 —— which java - -(3)修改防火墙配置:选一种方式执行(1)开启 8081 端口,然后重启防火墙: 开启 8081 端口:firewall-cmd –zone=public –add-port=8081/tcp –permanent 重启防火墙:firewall-cmd –reload - -(2)关闭防火墙:systemctl stop firewalld - -4.Jenkins 启动/重启/停止命令 linux 命令行: - -(1)启动:service jenkins start (2)重启:service jenkins restart (3)停止:service jenkins stop - -浏览器进入 Jenkins - -(1)登录:http://自己的 IP:8081/ (2)关闭:http://自己的 IP:8081/exit (3)重启:http://自己的 IP:8081/restart (4)重新加载:http://自己的 IP:8081/reload - -5.浏览器登录 Jenkins (1)解锁 Jenkins: - -输入命令: cat /var/lib/jenkins/secrets/initialAdminPassword - -将管理员密码复制到页面输入框:92aa3b378394496fb9cd7f0c300 - -## Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details. - - - -## ps -ef | grep jenkins - -Jekins 进程查看 - -## service jenkins start / service jenkins restart - -## [gitlab+jenkins 自动化部署](https://blog.csdn.net/ALLLiu/article/details/122559546) - -[参考 2](https://blog.csdn.net/ALLLiu/article/details/122559546) https://zhuanlan.zhihu.com/p/201307678 - -1. whereis git - -2. 生成公私钥 - 1. [root@jenkins ~]# ssh-keygen -t rsa - 2. 一路回车 会生成/root/.ssh/目录,其中包含 id_rsa,id_rsa.pub 两个文件。其中带有.pub 的表示公钥文件 - 3. 把私钥文件 id_rsa 文件的内容拷贝到 jenkins 上 - 1. [root@jenkins ~]# cat /root/.ssh/id_rsa -3. gitlab 仓库什么都没有的时候,会报错,这个时候似乎不存在 master 分支,随意报错了; - -## 项目文件被放在了哪里? - -## ? 这里如果我构建正式的代码,怎么操作?,难道也要部署一份? diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Maven\345\256\211\350\243\205.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Maven\345\256\211\350\243\205.md" deleted file mode 100644 index 4c863d05..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Maven\345\256\211\350\243\205.md" +++ /dev/null @@ -1,9 +0,0 @@ -# Maven安装 - -安装方法一:brew一键安装 - -1.1、在终端输入命令 brew install maven,并自动配置好了环境变量 - -注:如果没有安装brew 点击这里 查看安装教程 - -1.2、可以输入 mvn -v 查看版本 diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/MySQL\346\223\215\344\275\234.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/MySQL\346\223\215\344\275\234.md" deleted file mode 100644 index 36a1327a..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/MySQL\346\223\215\344\275\234.md" +++ /dev/null @@ -1,269 +0,0 @@ -# MYSQL - -https://www.modb.pro/db/46193 - - - 需要区分mac和linux。 - -## 自增 id 还是 uuid - -1. 自增 id: - 1. 采用连续 id 不怕把你库给撸了; - 2. 在分布式数据库环境下,用自增 id 直接嗝屁,小东西用用还行,一旦到了大点的系统自增 id 就没什么用; -2. uuid: - -## MySQL 分页到了后面越来越慢,有什么好的解决办法? - - - -1. 开发经常遇到分页查询的需求,但是当翻页过多的时候,就会产生深分页,导致查询效率急剧下降。 -2. [mysql 查询 limit 1000,10 和 limit 10 速度一样快吗?如果我要分页,我该怎么办?](https://mp.weixin.qq.com/s/F_c36mAkWxGyQrhkviC46Q) - -## PRIMARY KEY & KEY - -## 登录才能查看版本号,本地的 - -1. mysql -u root -p -2. Qw911029! - -## mysql - -1. utf8 是“utf8mb3”的一个别名,可以支持 1-3 字节表示的 unicode 字符 -2. utf8mb4 的编码,可以支持 1-4 字节表示的 unicode 字符 - -## Too many connections - -1. 登录 mysql -u root -p -2. 查看连接数:show variables like '%max_connection%'; -3. 查看谁在链接:show full processlist; - 1. 这里可以看到 100 多个链接,这是由于服务器 128 内核,理论上可以开 128 个 worker; - 2. lscpu:CPU(s): 40 -4. 将 admin 的 worker 设定在 2 个; - 1. --workers=2 框架 worker 线程数,**默认会创建和 CPU 核数相当的 app worker 数**,可以充分的利用 CPU 资源。 -5. 查看自己的公网 ip: curl ifconfig.me - -### 查看多核电脑的连接数 - -```bash -mysql> show full processlist; -+-------+------+---------------------+------+---------+------+----------+-----------------------+ -| Id | User | Host | db | Command | Time | State | Info | -+-------+------+---------------------+------+---------+------+----------+-----------------------+ -| 10483 | root | localhost:53958 | jmsd | Sleep | 822 | | NULL | -| 10998 | root | 36.22.242.143:53475 | jmsd | Sleep | 523 | | NULL | -| 11063 | root | localhost:54296 | jmsd | Sleep | 1155 | | NULL | -| 11079 | root | 36.22.242.143:56780 | jmsd | Sleep | 1014 | | NULL | -| 11080 | root | 36.22.242.143:56803 | jmsd | Sleep | 1014 | | NULL | -| 11089 | root | localhost:54558 | jmsd | Sleep | 2 | | NULL | -| 11090 | root | 36.22.242.143:63845 | jmsd | Sleep | 523 | | NULL | -| 11091 | root | 115.231.27.44:35226 | jmsd | Sleep | 51 | | NULL | -| 11092 | root | 115.231.27.44:35228 | jmsd | Sleep | 45 | | NULL | -| 11093 | root | localhost | NULL | Query | 0 | starting | show full processlist | -| 11094 | root | 115.231.27.44:35252 | jmsd | Sleep | 203 | | NULL | -| 11095 | root | 115.231.27.44:35272 | jmsd | Sleep | 203 | | NULL | -| 11096 | root | 115.231.27.44:35274 | jmsd | Sleep | 203 | | NULL | -| 11097 | root | 115.231.27.44:35288 | jmsd | Sleep | 203 | | NULL | -| 11098 | root | 115.231.27.44:35298 | jmsd | Sleep | 203 | | NULL | -| 11099 | root | 115.231.27.44:35302 | jmsd | Sleep | 203 | | NULL | -| 11100 | root | 115.231.27.44:35308 | jmsd | Sleep | 203 | | NULL | -| 11101 | root | 115.231.27.44:35318 | jmsd | Sleep | 203 | | NULL | -| 11102 | root | 115.231.27.44:35322 | jmsd | Sleep | 203 | | NULL | -| 11103 | root | 115.231.27.44:35332 | jmsd | Sleep | 203 | | NULL | -| 11104 | root | 115.231.27.44:35334 | jmsd | Sleep | 203 | | NULL | -| 11105 | root | 115.231.27.44:35348 | jmsd | Sleep | 203 | | NULL | -| 11106 | root | 115.231.27.44:35356 | jmsd | Sleep | 203 | | NULL | -| 11107 | root | 115.231.27.44:35358 | jmsd | Sleep | 203 | | NULL | -| 11108 | root | 115.231.27.44:35364 | jmsd | Sleep | 203 | | NULL | -| 11109 | root | 115.231.27.44:35378 | jmsd | Sleep | 203 | | NULL | -| 11110 | root | 115.231.27.44:35392 | jmsd | Sleep | 203 | | NULL | -| 11111 | root | 115.231.27.44:35398 | jmsd | Sleep | 203 | | NULL | -| 11112 | root | 115.231.27.44:35402 | jmsd | Sleep | 203 | | NULL | -| 11113 | root | 115.231.27.44:35414 | jmsd | Sleep | 203 | | NULL | -| 11114 | root | 115.231.27.44:35424 | jmsd | Sleep | 203 | | NULL | -| 11115 | root | 115.231.27.44:35428 | jmsd | Sleep | 203 | | NULL | -| 11116 | root | 115.231.27.44:35434 | jmsd | Sleep | 203 | | NULL | -| 11117 | root | 115.231.27.44:35438 | jmsd | Sleep | 203 | | NULL | -| 11118 | root | 115.231.27.44:35460 | jmsd | Sleep | 203 | | NULL | -| 11119 | root | 115.231.27.44:35468 | jmsd | Sleep | 203 | | NULL | -| 11120 | root | 115.231.27.44:35476 | jmsd | Sleep | 203 | | NULL | -| 11121 | root | 115.231.27.44:35480 | jmsd | Sleep | 203 | | NULL | -| 11122 | root | 115.231.27.44:35490 | jmsd | Sleep | 203 | | NULL | -| 11123 | root | 115.231.27.44:35494 | jmsd | Sleep | 203 | | NULL | -| 11124 | root | 115.231.27.44:35500 | jmsd | Sleep | 203 | | NULL | -| 11125 | root | 115.231.27.44:35504 | jmsd | Sleep | 203 | | NULL | -| 11126 | root | 115.231.27.44:35508 | jmsd | Sleep | 203 | | NULL | -| 11127 | root | 115.231.27.44:35518 | jmsd | Sleep | 203 | | NULL | -| 11128 | root | 115.231.27.44:35526 | jmsd | Sleep | 203 | | NULL | -| 11129 | root | 115.231.27.44:35538 | jmsd | Sleep | 203 | | NULL | -| 11130 | root | 115.231.27.44:35544 | jmsd | Sleep | 203 | | NULL | -| 11131 | root | 115.231.27.44:35545 | jmsd | Sleep | 203 | | NULL | -| 11132 | root | 115.231.27.44:35556 | jmsd | Sleep | 203 | | NULL | -| 11133 | root | 115.231.27.44:35558 | jmsd | Sleep | 203 | | NULL | -| 11134 | root | 115.231.27.44:35572 | jmsd | Sleep | 45 | | NULL | -| 11135 | root | 115.231.27.44:35580 | jmsd | Sleep | 51 | | NULL | -+-------+------+---------------------+------+---------+------+----------+-----------------------+ -52 rows in set (0.00 sec) -``` - -修改最大连接数:`set GLOBAL max_connections = 256;` - -## 同步 mysql 数据库的版本 - -1. 目前本地与线上的版本是一样的,qa 不一样,导致数据结构不能选择一样的; - 1. 先要登录: `mysql -uroot -p` - 2. local: `Server version: 8.0.29 Homebrew` - 3. qa: - 1. `mysql -uroot -p` - 2. `mysql command not found` - 3. `whereis mysqlselect version();` - 4. `/opt/zbox/bin/mysql.server status` start | stop | restart - 5. `/opt/zbox/bin/mysql -uroot -pjmsd@123. -P3307` - 6. /opt/zbox/bin/mysql -V - 1. /opt/zbox/bin/mysql Ver 15.1 Distrib 10.6.7-MariaDB, for Linux (x86_64) using readline 5.1 - 2. 这里的问题是 MariaDB 被默认安装了 - 7. 添加 mysql 的软连接:`ln -s /opt/zbox/bin/mysql /usr/local/bin/mysql` - 8. 选中链接的数据库,右键 console,可以直接运行 mysql 的命令`select version();`; - 1. 10.6.7-MariaDB; - -### 8.0 与 5.7 的区别 - -https://www.cnblogs.com/harda/p/16497988.html - -### 安装 mysql 到业务服务器 - -1. 输入 systemctl restart mysqld 启动 mysql 服务 - 1. 对于 mysql 来说,将在启动时自动生成一个默认密码,密码保存于/var/log/mysqld.log 的日志文件中。查阅使用 cat var/log/mysqld.log -2. You must reset your password using ALTER USER statement before executing this statement. - 1. /usr/bin/mysql -uroot -p - 2. 修改密码:update user set Password=password("jmsd@123.") where User='root'; - 3. `ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'jmsd@123.';` - 4. `ALTER USER 'root'@'localhost' IDENTIFIED BY 'Jmsd@123.';` - 1. Your password does not satisfy the current policy requirements; -3. `ln -s /usr/bin/mysql /usr/local/bin/mysql` -4. [添加用户](https://blog.csdn.net/qq_23859799/article/details/85862821) / 创建访问用户: - 1. create user qiuwei identified by 'Jmsd@123.'; - 2. `grant all privileges on *.* to 'qiuwei'@'%' identified by 'Jmsd@123.';` - 1. `grant all privileges on *.* to 'qiuwei'@'%' with grant option;` - 3. flush privileges; -5. 启动与重启: - 1. systemctl restart mysqld - -## QA - -1. [The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already](https://blog.csdn.net/weixin_46504244/article/details/125589431) - -### nodejs.ER_NOT_SUPPORTED_AUTH_MODEError: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client => 数据库密码错误了 - - -// mysql -u root -p -P 3306 - -// ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Qw911029!'; - -远程的处理方式: - -ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Jmsd@123.'; - -## 存储服务器安装 mysql - -202.75.222.245 / root@JmsdDZK<3j< / 3306 - -1. wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -2. yum localinstall mysql80-community-release-el7-7.noarch.rpm -3. yum install mysql-community-server -4. /usr/bin/mysql -V - 1. ln -s /usr/bin/mysql /usr/local/bin/mysql -5. 启动与关闭: - 1. service mysqld start - 2. service mysqld stop -6. 查看默认密码 - 1. cat /var/log/mysqld.log | grep "password" - 2. root@localhost: fJ3p?O<4(l&W -7. reset password; - 1. ALTER USER root@localhost identified by 'JmsdDZK<3j<'; -8. 把 localhost 用%代替: - 1. mysql> use mysql; - 2. mysql> update user set host = '%' where user ='root'; - 3. mysql> flush privileges; - 4. mysql> select 'host','user' from user where user='root'; - 5. mysql> quit; -9. 修改密码校验方式:远程的处理方式: - 1. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'JmsdDZK<3j<'; - 2. flush privileges; -10. 重启 mysql; - 1. systemctl restart mysqld -11. 开启服务器的防火墙端口: - 1. CnetOs7 开启方式 - 1. firewall-cmd --permanent --zone=public --add-port=3306/tcp - 2. firewall-cmd --reload - -## mysql 单表最好不要超过 2000w - -### 问题的原因 - -在保持相同的层级(相似查询性能)的情况下,在行数据大小不同的情况下,其实这个最大建议值也是不同的,而且影响查询性能的还有很多其他因素,比如,数据库版本,服务器配置,sql 的编写等等,MySQL 为了提高性能,会将表的索引装载到内存中。在 InnoDB buffer size 足够的情况下,其能完成全加载进内存,查询不会有问题。但是,**当单表数据库到达某个量级的上限时,导致内存无法存储其索引,使得之后的 SQL 查询会产生磁盘 IO,从而导致性能下降**,**所以增加硬件配置(比如把内存当磁盘使),可能会带来立竿见影的性能提升**哈。 - -### 如何解决 / 日常编码注意的问题 - -1. 方案一:优化现有 mysql 数据库。优点:不影响现有业务,源程序不需要修改代码,成本最低。缺点:有优化瓶颈,数据量过亿就玩完了。 -2. 方案二:升级数据库类型,换一种 100%兼容 mysql 的数据库。优点:不影响现有业务,源程序不需要修改代码,你几乎不需要做任何操作就能提升数据库性能,缺点:多花钱。 -3. 方案三:一步到位,**大数据解决方案,更换 newsql/nosql 数据库**。优点:扩展性强,成本低,没有数据容量瓶颈,缺点:需要修改源程序代码。 - -#### 优化现有 mysql 数据库 - -1. 数据库设计和表创建时就要考虑性能; - 1. mysql 数据库本身高度灵活,造成性能不足,严重依赖开发人员能力。也就是说开发人员能力高,则 mysql 性能高。这也是很多关系型数据库的通病,所以公司的 dba 通常工资巨高。 - 2. 表设计的时候要注意的地方: - 1. 表字段避免 null 值出现,**null 值很难查询优化且占用额外的索引空间**,**推荐默认数字 0 代替 null**。 - 2. 尽量使用 INT 而非 BIGINT,如果非负则加上 UNSIGNED(这样会扩大一倍),当然能使用 TINYINT、SMALLINT、MEDIUM_INT 更好。 - 3. 使用枚举或整数代替字符串类型; - 4. 尽量使用 TIMESTAMP 而非 DATETIME; - 5. 单表不要有太多字段,建议在 20 以内; - 6. 用整型来存 IP; - 3. 索引:简言之就是使用合适的数据类型,选择合适的索引 - 1. 索引并不是越多越好,要根据查询有针对性的创建,考虑在 WHERE 和 ORDER BY 命令上涉及的列建立索引; - 2. 应尽量**避免在 WHERE 子句中对字段进行 NULL 值判断**,否则将导致引擎放弃使用索引而进行全表扫描; - 3. 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段; - 4. 字符字段只建前缀索引; - 5. **字符字段最好不要做主键**; - 6. **不用外键,由程序保证约束**; - 7. 尽量不用 UNIQUE,由程序保证约束; - 8. 用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引; - 4. 选择合适的数据类型: - 1. 使用可存下数据的最小的数据类型,整型 < date,time < char,varchar < blob; - 2. 使用简单的数据类型,整型比字符处理开销更小,因为字符串的比较更复杂。 - 3. 使用合理的字段属性长度,固定长度的表会更快,使用 enum、char 而不是 varchar(4)尽可能使用 not null 定义字段; - 4. 尽量少用 text,非用不可最好分表# 选择合适的索引列; -2. sql 的编写需要注意优化; - 1. 使用 limit 对查询结果的记录进行限定; - 2. 避免 select \*,将需要查找的字段列出来; - 3. 使用连接(join)来代替子查询; - 4. 拆分大的 delete 或 insert 语句; - 5. 可通过开启慢查询日志来找出较慢的 SQL; - 6. 不做列运算; - 7. sql 语句尽可能简单:一条 sql 只能在一个 cpu 运算;大语句拆小语句,减少锁时间;一条大 sql 可以堵死整个库; - 8. OR 改写成 IN:OR 的效率是 n 级别,IN 的效率是 log(n)级别,in 的个数建议控制在 200 以内; - 9. 少用 JOIN; - 10. 避免%xxx 式查询; -3. 分区; -4. 分表; -5. 分库。 - -## mysql 启动 - -1. 启动与关闭本地 mysql 数据库: - - ```bash - # 启动 MySQL 服务 - mysql.server start - # 停止 MySQL 服务 sudo /usr/local/mysql/support-files/mysql.server stop - mysql.server stop - ``` - -2. 使用 navicat 链接数据库; -3. 新建数据库,然后运行本地的 sql 文件; - 1. 解决了一个导入的问题; - -## 参考 - -1. -2. diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Nginx\344\275\277\347\224\250.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Nginx\344\275\277\347\224\250.md" deleted file mode 100644 index 92807bb0..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Nginx\344\275\277\347\224\250.md" +++ /dev/null @@ -1,137 +0,0 @@ -# Nginx - -## 配置域名和 ip 都可以访问 - -```conf -server { - listen 80 default; - rewrite ^(.\*) http://www.yunxr.top/ permanent; -} - -server { - # 配置此段表示用IP或其他域名访问时跳转到test.jima101.com - listen 80 default; - server_name 115.231.27.45; - rewrite ^/(.*) http://test.jima101.com/$1 permanent; -} -``` - -### proxy_pass - -### rewrite - -## vhost - -Nginx vhost 配置,可实现基于 ip、端口号、servername 的虚拟主机,同时可避免直接修改主配置文件。在 nginx 下配置虚拟主机 vhost 非常方便。这篇文章主要介绍了 nginx 配置虚拟主机 vhost 的方法,需要的朋友可以参考下 - -## 基本概念 - -1、全局块:配置影响 nginx 全局的指令。一般有运行 nginx 服务器的用户组,nginx 进程 pid 存放路径,日志存放路径,配置文件引入,允许生成 worker process 数等。 - -2、events 块:配置影响 nginx 服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。 - -3、http 块:可以嵌套多个 server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type 定义,日志自定义,是否使用 sendfile 传输文件,连接超时时间,单连接请求数等。 - -4、server 块:配置虚拟主机的相关参数,一个 http 中可以有多个 server。 - -5、location 块:配置请求的路由,以及各种页面的处理情况。 - - - -## alias 与 root - -1. root 属性,会把 root 的值(这里是 yyy)加入到访问路径(locaition)之前; -2. alias 属性,和 root 的逻辑不通,会把 alias 的值(这里/data/ceshi/)替代访问路径匹配的部分(这里是/xxx); - -## nginx 的用法 - -``` -server_name - -语 法:server_name
;, server_name *.
;, server_name _; -默认值:server_name ""; -上下文:server -描 述:此选项允许你为 listen 端口设置地址,可以使用精确的名称、通配符、或者哈希表。设置哈希表可以快速处理类似服务器名称,MIME 类型,请求头字符串这样的静态数据。哈希表会使用到 ngx_http_map 模块。使用通配符可以使得多个 URL 使用相同的域名。当没有合法的域名存在时,可以使用 _ 这个参数。 -server_name www.abc.com one.abc.com; -server_name *.abc.com; -server_name _; -``` - -## 处理 html 被缓存的问题 - -1. nginx 配置:`add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";` - -## 查看 nginx 的报错日志 - -```conf -tar -f /var/log/nginx/error.log -``` - -## https,ssl 证书申请及配置 - -这里配置 https 的访问,基本就是需要如下几步 - -1. 配置解析二级域名; -2. 申请证书,在阿里云上,可以去下载; -3. https 默认监听 443 端口,这里给指向到 7001 端口的服务; -4. 将访问 80 的 http 请求也转发到 https 上; - -```conf -server { - listen 443; - server_name data-collection.qiuww.site; # 你的域名 - ssl on; - root /var/www/data-collection.qiuww.site; # 前台文件存放文件夹,可改成别的 - index index.html index.htm; # 上面配置的文件夹里面的index.html - ssl_certificate cert/4879254_data-collection.qiuww.site.pem; # 改成你的证书的名字 - ssl_certificate_key cert/4879254_data-collection.qiuww.site.key; # 你的证书的名字 - ssl_session_timeout 5m; - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_prefer_server_ciphers on; - location / { - # index index.html index.htm; - proxy_pass http://0.0.0.0:7001/; - } -} - -server { - listen 80; - server_name data-collection.qiuww.site; # 你的域名 - rewrite ^(.*)$ https://data-collection.qiuww.site:443/$1 permanent; # 把http的域名请求转成https -} -``` - -### 步骤 - -1. 申请证书; - 1. 免费证书; - 2. 文件验证; -2. 配置服务器 nginx,去验证文件; -3. 配置总的入口: - - ```conf - server { - listen 80; - listen [::]:80; - server_name tool.jima101.com; - include /home/code/server-config/tool/nginx.tool.conf; - } - - server { - listen 80; - listen [::]:80; - server_name 115.231.27.41; - include /home/code/server-config/tool/nginx.tool.conf; - } - ``` - -4. 下载 nginx 的证书文件,放到服务器上,重启,大功告成。 - -## qa - -### 一直不能访问到配置文件 - -原因是由于 nginx 不能访问到 nginx 的配置文件,所以每次 nginx -s reload 的时候,并不会加载新的配置文件。所以一直也不生效。需要获取权限,然后关闭再重新打开就好了。 - -文件权限访问不足,[查看](https://serverfault.com/questions/947301/nginx-displaying-failed-13-permission-denied-when-trying-to-access-new-site)。 diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Node.js\345\256\211\350\243\205.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Node.js\345\256\211\350\243\205.md" deleted file mode 100644 index 353c0d43..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/Node.js\345\256\211\350\243\205.md" +++ /dev/null @@ -1,57 +0,0 @@ -# Node.js 安装 - -1. [部署 Node.js 环境](https://help.aliyun.com/document_detail/50775.html); -2. 这里需要安装 Node.js 环境到服务器; - -## [安装 node 环境](https://blog.csdn.net/weixin_45880270/article/details/124222198) - -```bash - -# 1. 安装到 mkdir /home/qiuwww/node 目录下边;cd /home/qiuwww/node -# wget 找不到:https://zhuanlan.zhihu.com/p/356717135,需要安装一下 yum -y install wget - -`wget https://nodejs.org/dist/v16.15.1/node-v16.15.1-linux-x64.tar.xz` - -`tar -xvf node-v16.15.1-linux-x64.tar.xz` - -进入解压目录下的 bin 目录,测试是否安装成功: - -`cd node-v16.15.1-linux-x64` -`ls` - -现在 node 和 npm 还不能全局使用,做个链接。回到服务器跟目录下,执行命令: - -复制命令到 bin 目录。 - -`ln -s /home/qiuwww/node/node-v16.15.1-linux-x64/bin/node /usr/local/bin/node` -`ln -s /home/qiuwww/node/node-v16.15.1-linux-x64/bin/npm /usr/local/bin/npm` -`ln -s /home/qiuwww/node/node-v16.15.1-linux-x64/bin/npx /usr/local/bin/npx` - -`node -v` - -`echo $PATH` - -``` - -这里都适用 npm 吧,yarn 安装起来更麻烦。 - -## 查看环境变量文件 - -vi /etc/profile - -## 参考 - -1. - - - -## 如何部署 be - -1. [将 Nodejs 服务部署到阿里云服务器](https://www.cnblogs.com/ZLDJ-15-516/p/11122310.html) - 1. 使用 pm2 - 2. 在 /usr/local 下新建 deployment 文件夹,**将 nodejs 服务上传到该文件夹** - 1. 这里上传还是通过 git 同步比较好,将整个项目,包括 docker 的配置,一起传到这个目录下边; - 3. [参考官网](https://help.aliyun.com/document_detail/50775.html); -2. 部署 be 代码到服务器: - 1. 直接上传项目文件,使用的是 Xftp; - 2. 通过 git 两边同步; diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/gitlab\351\203\250\347\275\262.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/gitlab\351\203\250\347\275\262.md" deleted file mode 100644 index d4a563b1..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/gitlab\351\203\250\347\275\262.md" +++ /dev/null @@ -1,58 +0,0 @@ -# gitlab 部署 - -部署在 115.231.27.41 => tool.jima101.com - -## 具体操作 - -1. 需要安装 gitlab 服务; -2. 还要安装邮件服务; -3. 配置 gitlab: - 1. 指定服务器 ip 和自定义端口 - 2. 使用命令:vim /etc/gitlab/gitlab.rb - 3. 使 extenal_url 指向自己的 ip:extenal_url=“http://ip:8888” - 4. 修改发邮件的服务; -4. [代理 gitlab](https://zj-git-guide.readthedocs.io/zh_CN/stable/gitlab/[GitLab][nginx]%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86.html); - 1. http://localhost:8888/gitlab/ -5. external_url 配置: - 1. external_url 'http://example.org:8138' => 当更改 gitlab.rb 中的 external_url 参数时,会产生副作用(官方文档中没有非常清楚地说明!),nginx 现在将在放置在http://example.org中的端口上运行:8138。 - 2. **external_url 的配置直接影响到 gitlab 系统中所有 http 入口的地址,比如 git 仓库的 http 地址,gitlab 访问页面的地址,注册回调的地址,邮件验证的地址等**。 -6. 修改配置与重新启动 - 1. vi /etc/gitlab/gitlab.rb - 2. gitlab-ctl reconfigure - 3. gitlab-ctl restart -7. 修改 gitlab.ym - 1. 修改 gitlab.yml 的 host 和 port,把它修改的和 gitlab.rb 一致; - 2. vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml - 3. **不要运行 gitlab-ctl reconfigure 运行了,配置又还原回去了** => 这里可能就是从配置的 external_url 生成的配置; - 4. gitlab-ctl restart -8. [禁用内部 nginx](https://blog.hobairiku.site/2018/02/26/gitlab-setup/#1-%E4%B8%BB%E8%A6%81%E8%BF%90%E8%A1%8C%E7%AB%AF%E5%8F%A3%E5%92%8C%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6); - 1. 自己的 Nginx 服务器是一个云服务器,而 gitlab 所在的服务器是在家中的一个固定 ip 网络内的主机。 -9. 修改邮箱为 smtp: - 1. gitlab-rails console - 2. Notify.test_email('1014913222@qq.com', '邮件标题', '邮件正文').deliver_now - -### 总结 - -1. 修改 external_url,指向想要访问的地址,这个时候服务默认启动到 80 端口; -2. 修改 vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 的 port,让服务启动到 8888; -3. [需要配置内部的 nginx,对 8888 的服务映射到](https://learnku.com/articles/53373); `/var/opt/gitlab/nginx/conf/gitlab-http.conf` - -``` -# 修改 gitlab nginx 配置 -找到 /var/opt/gitlab/nginx/conf/gitlab-http.conf。 -它是 gitlab 内置的 nginx 的配置文件,里面可以影响到 nginx 真实监听端口号。要与上面的端口号 1 设置成一样。(位置略靠下) -server { -#listen *:80; -listen *: 8000; -``` - -4. 但是这里要注意,每次执行`gitlab-ctl reconfigure`的时候,就需要重新去修改,因为会被重新覆盖; -5. https://www.cnblogs.com/ifme/p/12851748.html - -## 账户 - -1. root => jmsd@12345 - -## 参考 - -1. diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/git\345\256\211\350\243\205.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/git\345\256\211\350\243\205.md" deleted file mode 100644 index e1b0eda3..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/git\345\256\211\350\243\205.md" +++ /dev/null @@ -1,30 +0,0 @@ -# git 安装 - -## 使用 git 同步代码到服务器上,发布项目 - -## 安装 git - -```bash -yum install git -y - -uname -a -# Linux 5GtReyS8qv 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux -mkdir /home/qiuwww - -cd /home/qiuwww - -git status - -git clone https://www.heikemen.cn/gitlab/jmsd/app.git - -git checkout -b qiu_be-node_20220621 origin/qiu_be-node_20220621 -git checkout -b fe-uniapp2 origin/fe-uniapp2 -``` - -## 修改本地的数据库链接到线上 - -qa 环境是没有 mysql 的,证书的服务器上是有的。 - -## 参考 - -1. diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/java\347\216\257\345\242\203\351\203\250\347\275\262.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/java\347\216\257\345\242\203\351\203\250\347\275\262.md" deleted file mode 100644 index 3ccd4279..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/java\347\216\257\345\242\203\351\203\250\347\275\262.md" +++ /dev/null @@ -1,5 +0,0 @@ -# java环境部署 - -## 参考文章 - -1. [Mac系统安装JDK1.8及配置环境变量(兼容新款M1芯片,亲测有效)](https://juejin.cn/post/7131744054395535368); diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/linux\345\270\270\350\247\201\346\223\215\344\275\234.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/linux\345\270\270\350\247\201\346\223\215\344\275\234.md" deleted file mode 100644 index d2c7145b..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/linux\345\270\270\350\247\201\346\223\215\344\275\234.md" +++ /dev/null @@ -1,14 +0,0 @@ -# linux 常见操作 - -## 端口占用的问题处理 server got error: bind EADDRINUSE null:7001, code: EADDRINUS / node Error: bind EADDRINUSE null - -端口被占用,换成别的端口。 - -```bash -lsof -i:7001 - -=>tcp6 0 0 :::7001 :::* LISTEN 6152/node - -kill -9 PID -kill -9 6152 -``` diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/pm2.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/pm2.md" deleted file mode 100644 index 10b36922..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/pm2.md" +++ /dev/null @@ -1,79 +0,0 @@ -# pm2 - -## pm2 常用命令 - -``` -$ npm install pm2 -g # 命令行安装 pm2 - -$ pm2 start app.js -i 4 # 后台运行 pm2,启动 4 个 app.js - - # 也可以把'max' 参数传递给 start - - # 正确的进程数目依赖于Cpu的核心数目 - -$ pm2 start app.js --name my-api # 命名进程 - -$ pm2 list # 显示所有进程状态 - -$ pm2 monit # 监视所有进程 - -$ pm2 logs # 显示所有进程日志 - -$ pm2 stop all # 停止所有进程 - -$ pm2 restart all # 重启所有进程 - -$ pm2 reload all # 0 秒停机重载进程 (用于 NETWORKED 进程) - -$ pm2 stop 0 # 停止指定的进程 - -$ pm2 restart 0 # 重启指定的进程 - -$ pm2 startup # 产生 init 脚本 保持进程活着 - -$ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615) - -$ pm2 delete 0 # 杀死指定的进程 - -$ pm2 delete all # 杀死全部进程 -``` - -## QA - -### Script /root/verdaccio had too many unstable restarts (16). Stopped. "errored" - -`pm2 start `which verdaccio` - -参考:https://stackoverflow.com/questions/44273846/verdaccio-fail-to-start-having-an-error-cannot-find-module - -## midway 项目的启动 - -1. 运行 build,生成 js 执行文件,这个时候不需要单独设置变量; -2. 执行 pm2,这个时候,可以在前面指定参数,如: - 1. `NODE_ENV=qa pm2 start ./bootstrap.js --name server-common -i 4`; - 2. `NODE_ENV=prod pm2 start ./bootstrap.js --name server-common -i 4`; - 3. 可以在 scripts 中运行; -3. 如果代码有问题,则需要先能本地 dev 运行,才能去打包执行: - 1. 常见 js 不能被处理的问题; - -## 启动项目 server-common 会报错 - -1. 首先检查 pm2 代码日志:`pm2 logs`; -2. 这个时候重新启动目标任务,查看这边的实时日志; - -### 目前排除的两个问题 - -1. 本身代码有问题: - ```js - const { Bootstrap } = require('@midwayjs/bootstrap'); - // 可以在启动代码之前添加配置 - // Bootstrap.configure({ - // imports: [ - // /*...*/ - // ], - // }).run(); - Bootstrap.run(); - ``` -2. prod 环境没配置导致报错: - 1. Dialect needs to be explicitly supplied as of v4.0.0 - 1. config.prod.js 没加; diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/redis\351\203\250\347\275\262\344\270\216\346\223\215\344\275\234.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/redis\351\203\250\347\275\262\344\270\216\346\223\215\344\275\234.md" deleted file mode 100644 index d9370c59..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/redis\351\203\250\347\275\262\344\270\216\346\223\215\344\275\234.md" +++ /dev/null @@ -1,39 +0,0 @@ -# redis部署与操作 - -1. [服务器要安装 redis](https://www.jianshu.com/p/3f04167b7f58): - 1. [处理找不到 redis 的问题](https://www.codeleading.com/article/98554130215/) - -```bash - yum install redis -y - # 启动redis - systemctl start redis - # 查看redis运行状态 - systemctl status redis - # 停止redis - systemctl stop redis - # 重启redis - systemctl restart redis - # 设置成开机自启动 - chkconfig redis on -``` - -## 本地 redis 运行,[egg-redis](https://github.com/eggjs/egg-redis) - -1. 不需要设置密码; -2. 开启与关闭: - -```bash -$ brew install redis # 安装 redis -$ brew services list # 查看包状态 -$ brew services start redis # 开启 redis -$ brew services stop redis # 停止 redis -$ brew services restart # 重启 redis - -# 启动可用 -$ brew services start redis ==> Successfully started `redis` (label: homebrew.mxcl.redis) -$ redis-server -``` - -## 参考 - -1. [Mac 安装 Homebrew并配置 Redis](https://www.jianshu.com/p/035be70daf2d); diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/ssh.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/ssh.md" deleted file mode 100644 index 837a1831..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/ssh.md" +++ /dev/null @@ -1 +0,0 @@ -ssh-copy-id -i ~/.ssh/id_rsa.pub root@115.231.27.41 diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/static\345\255\230\345\202\250\346\234\215\345\212\241\345\231\250\351\203\250\347\275\262\346\234\215\345\212\241.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/static\345\255\230\345\202\250\346\234\215\345\212\241\345\231\250\351\203\250\347\275\262\346\234\215\345\212\241.md" deleted file mode 100644 index 072345ba..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/static\345\255\230\345\202\250\346\234\215\345\212\241\345\231\250\351\203\250\347\275\262\346\234\215\345\212\241.md" +++ /dev/null @@ -1,59 +0,0 @@ -# 存储服务器部署服务 - -202.75.222.245 => static.jima101.com - -现在想把图片和视频放到这边的这个存储服务器上,现在这个没用到。 然后准备配置一个 static.jima101.com 的域名。 这样。分开。应该是合适的吧。 存储服务器现在就没用到, - -## 查看服务器的信息 - -```bash -# 查看内核: -cat /proc/version -# Linux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018 -yum -# 可用 -``` - -## 1. 安装 nginx - -1. 查看业务服务器的 nginx 版本;`nginx version: nginx/1.20.1` -2. 具体的安装:`https://cloud.tencent.com/developer/article/1626878` -3. 启动与重启关闭: - 1. `systemctl start nginx` - 2. `systemctl stop nginx` - 3. `systemctl restart nginx` - 4. `systemctl status nginx` - 5. 1 启动 nginx 的命令为 /usr/local/nginx/sbin/nginx - 1. 2 - 2. 3 停止 nginx 的命令为 /usr/local/nginx/sbin/nginx -s stop - 3. 4 重启 nginx 的命令为 /usr/local/nginx/sbin/nginx -s reload - 6. 软连接:`ln -s /usr/local/nginx/sbin/nginx` -4. 关联的目录: - 1. 安装成功后,默认的网站目录为: /usr/share/nginx/html - 2. 默认的配置文件为:/etc/nginx/nginx.conf - 3. 自定义配置文件目录为: /etc/nginx/conf.d/ - -## 校验 ssl 证书 - -1. 反向代理这个文件:https://www.cnblogs.com/xiongzaiqiren/p/15046116.html - -## 安装 git - -1. - -## clone server-config 项目 - -## 部署成功,访问测试 - -1. http://static.jima101.com/img/readme.txt -2. https://static.jima101.com/img/readme.txt -3. http://202.75.222.245/img/readme.txt - -## 部署 node - -https://www.cnblogs.com/egrets/p/14861138.html和mysql; - -## 添加文件接收与存储服务 - -1. 初始化 egg 服务; -2. 修改项目,添加文件服务; diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/tool.jima101.com\351\205\215\347\275\256-\345\256\211\350\243\205\345\270\270\347\224\250\347\232\204\350\275\257\344\273\266.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/tool.jima101.com\351\205\215\347\275\256-\345\256\211\350\243\205\345\270\270\347\224\250\347\232\204\350\275\257\344\273\266.md" deleted file mode 100644 index 05b06318..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/tool.jima101.com\351\205\215\347\275\256-\345\256\211\350\243\205\345\270\270\347\224\250\347\232\204\350\275\257\344\273\266.md" +++ /dev/null @@ -1,24 +0,0 @@ -# tool.jima101.com 配置 - -115.231.27.41 - -1. cat /etc/redhat-release => CentOS Linux release 7.6.1810 (Core) -2. 修改密码 => passwd root - -## nginx 安装 - -@\_docs/运维操作/存储服务器部署服务.md - -1. systemctl start nginx -2. nginx -s reload -3. nginx -s stop - -### 配置 ssl 证书 - -## git 安装 - -yum install -y git - -## gitlab 安装 - -@\_docs/运维操作/gitlab 部署.md diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/verdaccio\345\273\272\347\253\213\350\207\252\345\267\261\347\232\204npm\351\225\234\345\203\217\346\234\215\345\212\241\345\231\250.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/verdaccio\345\273\272\347\253\213\350\207\252\345\267\261\347\232\204npm\351\225\234\345\203\217\346\234\215\345\212\241\345\231\250.md" deleted file mode 100644 index 4f3c90ed..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/verdaccio\345\273\272\347\253\213\350\207\252\345\267\261\347\232\204npm\351\225\234\345\203\217\346\234\215\345\212\241\345\231\250.md" +++ /dev/null @@ -1,72 +0,0 @@ -# 建立自己的 npm 镜像服务器 - -1. https://segmentfault.com/a/1190000040366067 - -## 先要安装 node - -- `ln -s /home/soft/node-v16.15.1-linux-x64/bin/node /usr/local/bin/node` -- `ln -s /home/soft/node-v16.15.1-linux-x64/bin/npm /usr/local/bin/npm` -- `ln -s /home/soft/node-v16.15.1-linux-x64/bin/npx /usr/local/bin/npx` -- `ln -s /home/soft/node-v16.15.1-linux-x64/bin/yarn /usr/local/bin/yarn` - -## 配置 - -配置文件:`vi /root/verdaccio/config.yaml`; - -需要先配置: url_prefix: /verdaccio/ - -配置 nginx 代理 - -``` -location /verdaccio/ { - proxy_pass http://127.0.0.1:4873/; - proxy_set_header Host $host; -} -``` - -```yaml -'@jm/*': - access: $all - publish: $authenticated - unpublish: $authenticated -``` - -这系统的页面资源写死的是 http 的,所以 https 访问会跨域。 - -只能访问 http 的了: - -### 使用 pm2 启动 - -pm2 start verdaccio - -这里会报错? - -## 使用 - -1. 访问地址:http://tool.jima101.com/verdaccio/ -2. 修改源:npm config set registry http://tool.jima101.com/verdaccio/ -3. 2 步,也可以使用 nrm 来管理: - 1. nrm add jm http://tool.jima101.com/verdaccio/ - 2. nrm use jm - 3. 测试: yarn add dayjs,查看 yarn.lock 可以看到源地址已修改 - ``` - dayjs@^1.11.6: - version "1.11.6" - resolved "http://tool.jima101.com/verdaccio/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" - ``` -4. 上传一个依赖包 - 1. npm adduser --registry http://tool.jima101.com/verdaccio/ - 2. npm whoami - 3. npm init && add index.js && npm version 1.0.1 - 4. npm publish --registry http://tool.jima101.com/verdaccio/ - 5. 然后可以使用登录账户就可以查看了 - 6. 当前的包,都添加似有说明 `@jm/uniapp-ui`; - -## 参考 - -1. [建立自己的 npm 镜像服务器](https://cloud.tencent.com/developer/article/1722254); - -## QA - -1. Cannot publish over existing version. - 1. 表示存在了重复的包名; diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\205\263\344\272\216java\351\241\271\347\233\256.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\205\263\344\272\216java\351\241\271\347\233\256.md" deleted file mode 100644 index 515b2e44..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\205\263\344\272\216java\351\241\271\347\233\256.md" +++ /dev/null @@ -1,13 +0,0 @@ -## Java 项目启动 - -1. 启动 mysql: `mysql.server start`; -2. radis: `brew services start redis && redis-server`; - 1. redis-server ?? -3. Java 后台,启动步骤: - 1. git clone 代码 - 2. import module:be-java/pom.xml - 3. 启动 JeecgApplication,看日志报错 - 4. 本地安装 redis,密码不用设置 - 5. 访问文档地址 - 6. 选中 system 模块,获取验证码、登录 -4. 打开本地 fe 项目:`yarn dev`; \ No newline at end of file diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\214\346\255\245\346\225\260\346\215\256\345\272\223.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\214\346\255\245\346\225\260\346\215\256\345\272\223.md" deleted file mode 100644 index 27089fd3..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\214\346\255\245\346\225\260\346\215\256\345\272\223.md" +++ /dev/null @@ -1,13 +0,0 @@ -# 怎么同步数据库结构 - -就是我修改了测试数据库的结构,然后需要同步到正式数据库,不修改正式数据库的数据。 - -看起来好像还是挺简单的。 - -[参考这个](https://blog.csdn.net/qq_23009105/article/details/84503209) - -1. 同步结构; - 1. tools => Data Synchromization -2. 同步数据; - 1. Structure Synchromization - 2. 可以只同步部分的表; diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\216\347\273\255\345\274\200\345\217\221\350\247\204\345\210\222.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\216\347\273\255\345\274\200\345\217\221\350\247\204\345\210\222.md" deleted file mode 100644 index 3037a456..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\345\220\216\347\273\255\345\274\200\345\217\221\350\247\204\345\210\222.md" +++ /dev/null @@ -1,41 +0,0 @@ -# 后续开发规划 - -## 基建项目 / infrastructure-projects - -包括并不限于如下的方面: - -1. 测试平台; -2. 禅道部署; -3. 公司内部邮箱; -4. 私有 npm 源; -5. 私有 gitlab; - 1. gitlab 分组: - 1. business:包括前后端代码; - 2. npm-package:发布到 npm 包管理平台的包; - 3. infrastructure:基建项目,如前后端监控; - 4. template:模板项目仓库; -6. nginx 配置: - 1. api:一般是服务端口配置; - 2. f2e:前端项目; - -### 禅道,云禅道 jmsd/jmsd123,云部署的不好用,后续还是要本地部署 - -1. [官方文档](https://www.zentao.net/zentaovideo/zentao-use-80521.html); -2. 本地化部署; -3. 可以先 5 人内使用云禅道; -4. [mac 下部署](https://www.zentao.net/book/zentaopmshelp/40.html); -5. [docker 部署安装](https://www.zentao.net/book/zentaopmshelp/40.html); - -### 内部邮箱 - -这个似乎是可以的,但是现在有很多的企业邮箱,费用也不是很贵。 - -### npm 源,[verdaccio](https://verdaccio.org/),这个暂时不着急,后边需要就去部署,看起来挺简单的 - -1. [参考文章](https://blog.csdn.net/weixin_54000091/article/details/125369014); -2. [Docker Image](https://verdaccio.org/docs/installation#docker-image); - -### 私有 gitlab - -1. [参考文章](https://www.jianshu.com/p/cf22b3f28782); -2. [参考 2](https://www.likecs.com/show-203792755.html) diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\347\246\205\351\201\223\351\203\250\347\275\262.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\347\246\205\351\201\223\351\203\250\347\275\262.md" deleted file mode 100644 index 021bbee1..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\347\246\205\351\201\223\351\203\250\347\275\262.md" +++ /dev/null @@ -1,25 +0,0 @@ -# 禅道部署 - -1. -2. 安装文档:`https://www.zentao.net/book/zentaopmshelp/40.html` - 1. wget `https://www.zentao.net/sdl/projects/zentao/files/12.3.2/ZenTaoPMS.12.3.2.zbox_64.tar.gz` - 1. `https://www.zentao.net/sdl/projects/zentao/files/12.3.2/ZenTaoPMS.12.3.2.zbox_64.tar.gz` - 2. `sudo tar -zxvf ZenTaoPMS.12.3.2.zbox_64.tar.gz -C /opt` - 3. cd /opt/zbox - 4. sudo ./zbox start - 1. 启动失败,修改接口地址: - 2. 例如(apache 端口改为 6666,mysql 端口改为 6667): - 3. /opt/zbox/zbox -ap 6666 -mp 3307 - 4. /opt/zbox/zbox start - 5. /opt/zbox/zbox restart - 5. 访问地址: - 1. 默认用户名 admin 密码 123456 => jmsd123456 - 2. `http://115.231.27.45:8088/zentao/my/?tid=g9a4hcae` - 6. 网页登录数据库: - 1. **数据库最好别动:** - 2. 先 cd /opt/zbox/auth/ 然后执行 ./adduser.sh - 3. `https://www.zentao.net/book/zentaopmshelp/40.html` - 4. root@123456 - 1. 这里的密码设置太复杂就不能用 - 7. 命令行连接数据库 - 1. 登录数据库:`/opt/zbox/bin/mysql -u root -P mysql 端口 -p (比如:/opt/zbox/bin/mysql -u root -P 3306 -p)` diff --git "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\350\277\220\347\273\264\346\223\215\344\275\234.md" "b/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\350\277\220\347\273\264\346\223\215\344\275\234.md" deleted file mode 100644 index 0112e961..00000000 --- "a/15.\350\277\220\347\273\264\346\223\215\344\275\234\345\217\212\347\216\257\345\242\203\351\205\215\347\275\256/JMSD_\350\277\220\347\273\264\346\223\215\344\275\234/\350\277\220\347\273\264\346\223\215\344\275\234.md" +++ /dev/null @@ -1,231 +0,0 @@ -# 运维操作 - -1. whereis nginx -2. cat /etc/redhat-release,查看系统版本 - -## 如何快速了解一个服务器的信息 - -如内存、闪存、硬盘、系统、CPU、内存占用、进程等。 - -比如服务器: - -1. IP:119.37.199.165 -2. 端口:22 -3. 账号:root -4. 密码:yiming2022!@#$GC0217!!! - -```bash -# 查看当前的系统 -cat /proc/version - -# Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 - -# yum是否可用 -yum - -# 查看cpu参数 -lscpu - -# 查看每个cpu -cat /proc/cpuinfo - -# 内存,闪存 -free -m - -# 查看内存硬件信息 -dmidecode -t memory - -# 磁盘 -lsblk - -# 查看ip -ip addr show - -# 当前运行的进程 -ps aux | less - -# 查看当前服务的端口/启动的服务 -# linux系统查看当前正在运行的服务 - -# Linux 查看端口占用情况 -lsof -i - -netstat -tunlp | grep 8080 - -# 杀掉某个进程 -kill -9 26993(PID) -``` - -## 文件目录说明 - -linux 系统根目录下各个目录用途说明: - -1、/ 根目录 --------- 所有目录挂在其下 - -2、/boot --------- 存放 Ubuntu 内核和系统启动文件。系统启动时这些文件先被装载。 - -3、/etc --------- 系统的配置文件目录。密码文件、设置网卡信息、环境变量的设置等都在此目录中,许多网络配置文件也在其中。 - -4、/lib --------- 根文件系统目录下程序和核心模块的共享库。这个目录里存放着系统最基本的动态链接共享库,类似于 Windows 下的 system32 目录,几乎所有的应用程序都需要用到这些共享库。 - -5、/media --------- 主要用于挂载多媒体设备。ubuntu 系统自动挂载的光驱、usb 设备,存放临时读入的文件。 - -6、/proc --------- 这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。 - -7、/sbin --------- s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序,如系统管理、目录查询等关键命令文件。 - -8、/tmp --------- 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。 - -9、/home --------- 用户的主目录。下面是自己定义的用户名的文件夹。每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。 - -10、/mnt --------- 此目录主要是作为挂载点使用。通常包括系统引导后被挂载的文件系统的挂载点。如挂载 Windows 下的某个分区。 - -11、 **opt 目录** ------ /opt 目录用来安装附加软件包,是用户级的程序目录,**可以理解为 D:/Software。\*\***安装到/opt 目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。**opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),**当你不需要时,直接 rm -rf 掉即可。\*\*在硬盘容量不够时,也可将/opt 单独挂载到其他磁盘上使用。 - -12、/usr/local:用户级的程序目录,可以理解为 C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。 这里主要存放那些手动安装的软件。 - -runoob 教程: - -### linux 与 window 目录对应关系 - -## yum - -1. [介绍](https://www.runoob.com/linux/linux-yum.html); - -## 部署 git - -```bash -yum install git -y - -uname -a -# Linux 5GtReyS8qv 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux - -mkdir /home/qiuwww - -cd /home/qiuwww - -git status - -git clone https://www.heikemen.cn/gitlab/jmsd/app.git - -git checkout -b prod/qiu_node -git branch --set-upstream-to=origin/prod/qiu_node prod/qiu_node - -# 如果有未提交的执行如下命令: -git chckout . -git clean -fd -``` - -## nodejs 部署 - -@\_docs/运维操作/Node.js 安装.md - -## anywhere 配置软连接 / anywhere 启动 spawn xdg-open ENOENT - -1. anywhere -p 9000 -s - 1. 这里要添加-s 命令,表示不打开浏览器,不然会报错的; - -## 部署 mysql 服务 - -@\_docs/运维操作/MySQL 操作.md - -## 部署 nginx 服务 - -@\_docs/运维操作/Nginx 使用.md - -nginx 安装成功后的位置如下: - -- /usr/sbin/nginx:主程序 -- /etc/nginx:配置文件所在路径 -- /usr/share/nginx:静态文件所在路径 -- /var/log/nginx:日志文件所在路径 - -部署 nginx: - -[阿里云安装配置 nginx](https://www.cnblogs.com/anenyang/p/11194667.html) - - - -这里可以将服务端口都转为子域名访问。 - -```bash - -:3000 -> test.qiuww.site -:7001 -> data-collection.qiuww.site - -/etc/nginx/nginx.conf 配置日志等 -/etc/nginx/sites-available/default 配置项目路径等 -``` - -### 启动软件并设置开机启动 - -1. systemctl enable nginx -2. systemctl start nginx -3. 启动命令 start nginx -4. 重新启动命令 nginx -s reload - -### 端口对外部可访问 - -查看端口的情况:`netstat -tunlp | grep 80` 查看所有端口的访问:`netstat -tunlp` - -### 403 Forbidden nginx - -三、权限问题,如果 nginx 没有 web 目录的操作权限,也会出现 403 错误。解决办法:修改 web 目录的读写权限,或者是把 nginx 的启动用户改成目录的所属用户,重启 Nginx 即可解决 - -1. chmod -R 777 /data -2. chmod -R 777 /data/img -3. chmod -R 777 /home/code - -### nginx 配置跨域 - -add_header 'Access-Control-Allow-Origin' '\*' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS,PUT,DELETE,OPTION'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,Accept,Referer,Accept-Encoding,Accept-Language,Access-Control-Request-Headers,Access-Control-Request-Method,Connection,Host,Origin,Sec-Fetch-Mode'; - -### linux 端口外部访问不,防火墙没开,导致 80 端口不能被访问到 - -```bash -# cd到linux 的etc/sysconfig目录下执行以下语句 则在外网上就可以访问此端口了: -firewall-cmd --permanent --add-port=80/tcp 其中80 是你想要访问的端口 -firewall-cmd --reload - -# 直接关闭防火墙的命令: -systemctl stop firewalld.service -``` - -### 这里出现了一个 nginx 一直不能访问到前端代码的问题 - -#### 问题处理思路 - -1. 查看默认位置的`/etc/nginx/nginx.conf`文件配置,如果这里改动了很多次(像我一样)还是没有效果,那么就要考虑是不是这里的问题了; -2. **查看 nginx 的日志文件**`tail -f /var/log/nginx/error.log`, -3. 查看 nginx 当前的依赖的配置文件: - 1. Nginx 配置不生效时,一般去看看错误日志; - 2. 这里的错误信息提示/usr/share/nginx/html/h5/index.html,也就是走的默认 root; -4. vhost 文件夹是干嘛的? - 1. 这个配置的关键是,在 vhost 目录下,你这个 conf 文件生效了 - 2. `/etc/nginx/vhost/jmsd-api.conf`,这里的文件覆盖了`/etc/nginx/nginx.conf`这里的配置; - 3. 你 server_name 指定了 ip,也就是说 ip 访问时,这里是最高响应优先级 - 4. 在这里把 h5 那个配置加上就可以了 - 5. 这两边都添加一下就可以了。 - -注意区分: - -```conf -location /h5 { - alias /home/code/h5; -} -location /h5 { - root /home/code; -} -``` - -### 上传文件提示 413 Request Entity Too Large 错误 - -1. - -这个时候是因为 nginx 的问题,限制了。所以添加配置`client_max_body_size 100M;`; - -## vi 中的搜索 - -/搜索内容 - -## linux work文件夹路径的设置