Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......

文章目录

  • 一、环境准备
  • 二、安装JDK
  • 三、安装MySQL
  • 四、安装Redis
  • 三、安装RabbitMQ
  • 四、安装Minio
  • 五、安装Nginx
  • 特殊情况处理
    • Centos7挂载磁盘
    • 服务器时间同步
    • MySQL数据库时间同步
    • 安装解压软件
    • 修改数据库SQL模式


一、环境准备

  1. 下载镜像源
    中科大镜像源下载至/opt目录下
  2. 修改yum源为中科大源
#查看系统版本
cat /proc/version
#查看源 (包含Base.repo的文件 系统版本不一样文件名称不一样)
cat /etc/yum.repos.d/CentOS-Base.repo

# yum源备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 复制中科大的源
mv /opt/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
# 清除缓存
yum clean all
# 把yum源缓存到本地,加快软件的搜索安装速度
yum makecache
# 列出包
yum list
# 安装wget
yum install -y wget

二、安装JDK

yum -y install java-1.8.0-openjdk-devel.x86_64
# 验证安装
java -version

三、安装MySQL

  1. 下载 MySQL yum包
# 创建目录
mkdir /opt/mysql
cd /opt/mysql
# 下载
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  1. 安装软件源
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
  1. 安装MySQL 服务端
yum -y install mysql-community-server
#公钥未安装问题则加上--nogpgcheck 参数
yum install --nogpgcheck mysql-community-server
  1. 启动MySQL 服务端
# 启动 mysql
systemctl start mysqld
# 开机自启动
systemctl enable mysqld
  1. 设置root新密码
# 查看临时密码
grep password /var/log/mysqld.log
# 使用临时密码登录数据库
mysql -p
# 设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Demo@123';
  1. 添加用户demo并且开启远程访问权限
# 添加用户并且添加远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'demo'@'%' IDENTIFIED BY 'Demo@123' WITH GRANT OPTION;
FLUSH  PRIVILEGES;
#查看是否生效
select host,user from mysql.user
# 退出登录
quit;
  1. 配置数据库时区以及字符
sudo vim /etc/my.cnf

# 添加下列配置
# 配置支持emoji表情符号
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 配置MySQL时区
default-time_zone = '+8:00'
# 配置MySQL不区分大小写 
lower_case_table_names=1

# 重启mysql
systemctl restart mysqld

#进入mysql查看是否生效
mysql -uomo -p
show variables like '%char%';
# 退出登录
quit;
  1. 设置服务器时区
# 设置服务器时区
timedatectl set-timezone Asia/Shanghai
# 同步网络时间-需要服务器可访问外网
yum -y install ntpdate
ntpdate -u ntp.api.bz
# 重启mysql
systemctl restart mysqld
  1. 开通防火墙
# 开通防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service
# 查看是否生效
firewall-cmd --list-ports --permanent
  1. 卸载MySQL
# 卸载MySQL
rpm -qa | grep mysql

四、安装Redis

  1. 下载redis
[root@localhost /]# mkdir /opt/redis
[root@localhost /]# cd /opt/redis
# 当前目录  
[root@localhost redis]# pwd  
/opt/redis
[root@localhost redis]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
redis-6.2.6.tar.gz
[root@localhost redis]# 

Redis官网也可自行下载对应版本
2. 安装

# 源码安装 创建redis 文件夹
# 解压包
tar -zxvf redis-6.2.6.tar.gz
# 进入目录
cd redis-6.2.6/
# 如果失败则运行 yum clean all      yum makecache
yum install gcc-c++
# 编译 报错则先 make distclean
make
# 在/usr/local/下创建文件夹
mkdir -p /usr/local/redis/data
# 安装Redis, 将Redis安装在/usr/local/redis目录下
make PREFIX=/usr/local/redis install
# 复制redis.conf配置文件到/etc目录下
cp redis.conf /etc
  1. 配置
# 打开配置文件
vi /etc/redis.conf

# 修改下列配置(必须一个个改不要直接复制)
# 修改后台启动, 默认为daemonize no, 修改为daemonize yes
daemonize yes
# 客户端闲置多长时间后断开连接, 默认为0关闭此功能, 修改为300                                      
timeout 300
# 设置密码, 默认被注释, 取消注释修改为自定义密码 一定要设置
requirepass 123456
# 监听ip, 允许访问的ip, 默认为127.0.0.1, 修改为0.0.0.0(允许所有服务器ip访问)或者注释掉
bind 0.0.0.0
# 指定监听端口, 默认为6379, 此处我保持默认
port 6379
# 修改AOF及RBD存放路径, 默认为./, 修改为/usr/local/redis/data
dir /usr/local/redis/data
# 修改log存放路径, 默认为"", 修改为"/usr/local/redis/data/redis_6379.log"
logfile "/usr/local/redis/data/redis_6379.log"
  1. 设置RBD存放文件夹权限
# 开机脚本
vi /lib/systemd/system/redis.service

#内容
[Unit]
Description=redis.server
After=network.target

[Service]
Type=forking
PIDFILE=/usr/local/redis/data/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

#启动redis
/usr/local/redis/bin/redis-server /etc/redis.conf
# 开启自动重启
systemctl enable redis.service
  1. 开通防火墙
# 开通防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service

三、安装RabbitMQ

  1. 安装erlang
#这里需要确认系统版本  如果是超过7版本的可能会下载到高版本的 会跟mq版本不一致 冲突    后续补充指定版本安装
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum install -y erlang
# 验证
erl -version

  1. 安装rabbitmq
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
rpm --import https://packagecloud.io/gpg.key
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum -y install epel-release socat

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

  1. 安装rabbitmq-server
# 下载至对应目录
mkdir /opt/rabbitmq
cd /opt/rabbitmq
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm

[root@localhost rabbitmq]# pwd
/opt/rabbitmq
[root@localhost rabbitmq]# ls
rabbitmq-server-3.8.5-1.el7.noarch.rpm
[root@localhost rabbitmq]# 

# 安装rabbitmq-server
rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm

# 启用管理平台插件
rabbitmq-plugins enable rabbitmq_management
# 启动RabbitMQ
systemctl start rabbitmq-server
# 开机自启
systemctl enable rabbitmq-server

rabbitmq-server也可以自行下载,但需对应版本号,避免版本冲突
4. 安装延迟插件

cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.5/plugins/
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  1. 开通防火墙
# 开通防火墙
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
#firewall-cmd --zone=public --add-port=25672/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service
  1. 新增用户
rabbitmqctl add_user root root
# 赋予权限
rabbitmqctl set_permissions -p / root '.*' '.*' '.*'
# 设置为管理员
rabbitmqctl set_user_tags root administrator

# 设置重启用户保留
# 列出所有用户
rabbitmqctl list_users
  1. 重启服务器
#重启服务器
reboot
# 检查 redis 是否开机自启
ps aux | grep redis
# 检查 mq 是否开机自启
ps aux | grep mq
# 检查mq 用户列表 root 用户是否存在
rabbitmqctl list_users

#如果重启后root用户不在则需要改
# 添加hosts
vi /etc/hosts
# 添加内容
127.0.0.1 localhost.localdomain
  1. 登录验证延迟队列是否生效
    在这里插入图片描述

四、安装Minio

  1. 安装
    Minio下载
    上传至/opt/minio目录
cd /opt/minio

[root@localhost minio]# pwd
/opt/minio
[root@localhost minio]# ls
minio

# 赋予权限
chmod +x minio

cd /mnt
mkdir miniodata
sudo touch /mnt/miniodata/minio.log


# 设置账号密码
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=Admin@123
# 后台启动
nohup /opt/minio/minio server /home --address 0.0.0.0:9400 --console-address :9500 > /mnt/miniodata/minio.log 2>&1 &
  1. 开放防火墙
firewall-cmd --add-port=9400/tcp --permanent
firewall-cmd --add-port=9500/tcp --permanent

# 重启防火墙
systemctl restart firewalld.service
  1. 设置开机启动
# 打开开机自启文件
vi /etc/rc.local

# 添加自启脚本
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=Admin@123
nohup /opt/minio/minio server /home --address 0.0.0.0:9400 --console-address :9500 > /mnt/miniodata/minio.log 2>&1 &

# 保存
# 修改权限
chmod +x /etc/rc.local
# 重启测试
reboot
  1. ip+9500 登录验证
    在这里插入图片描述

  2. 设置存储桶
    创建桶:Buckets > Create Buckets
    设置桶权限:Buckets > Summary > Access Policy 改为 public

  3. 注意!!!
    本次minio上传的文件存储在/home目录下

五、安装Nginx

  1. 下载
    Nginx官网,下载对应版本并上传至/opt/nginx 目录下
mkdir /opt/nginx
cd /opt/nginx
#上传压缩包
[root@localhost nginx]# pwd
/opt/nginx
[root@localhost nginx]# ls
nginx-1.8.1.tar.gz
  1. 安装依赖
# 安装依赖
yum -y install gcc gcc-c++ 
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
  1. 编译安装(默认安装路径:/usr/local/nginx)
# 编译安装(默认安装路径:/usr/local/nginx)
tar xzvf nginx-1.8.1.tar.gz
cd nginx-1.8.1/
./configure --with-http_ssl_module
make && make install
  1. 创建所需文件夹以及文件
#创建所需文件夹以及文件
mkdir	-p /var/log/nginx && mkdir	-p /var/run/
sudo touch /var/log/nginx/error.log && sudo touch /var/run/nginx.pid
  1. 修改配置文件,设置请求转发(按需,可跳过该步)
vi /usr/local/nginx/conf/nginx.conf
  1. 启动
sudo /usr/local/nginx/sbin/nginx -t
# 启动 
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  1. 设置开机自启
# 设置nginx开机自启动
vi /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target
  1. 启动并开放端口
systemctl enable nginx.service
# 开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service
  1. 日志分割备份
#创建文件夹
mkdir /opt/script
#创建nginx分割日志脚本
vi /opt/script/cut_nginx_log.sh
#复制以下内容
#!/bin/sh
cd /var/log/nginx/
sudo mv access.log access_$(date +%F -d -1day).log
sudo /usr/local/nginx/sbin/nginx -s reload
  1. 设置定时任务
#增加执行权限
chmod +x /opt/script/cut_nginx_log.sh
#创建定时任务
crontab -e
#复制以下内容
00 00 * * * /opt/script/cut_nginx_log.sh

#查看定时列表
crontab -l
#重启 cron
sudo service crond restart

特殊情况处理

Centos7挂载磁盘

# 查看机器上都插了哪些安装盘
sudo fdisk -l
# 创建硬盘分区(/dev/sdb是示例,根据具体情况输入)
# n:添加一个分区 p:主分区 w:写入磁盘
fdisk /dev/sdb
# 格式化硬盘
mkfs.ext4 /dev/sdb
# 建立挂载目录
mkdir /mnt/miniodata
# 挂载硬盘
mount /dev/sdb /mnt/miniodata
# 设置开机自动挂载
vi /etc/fstab

/dev/sdb    /data    ext4    defaults    0 0

# 重启服务器
shutdown -r now

服务器时间同步

#查看当前时区
timedatectl
#设置当前时区为上海常用:Asia/Shanghai
timedatectl set-timezone Asia/Shanghai

#安装时间同步应用
yum install -y ntp
#同步上海授时中心时间
ntpdate ntp.api.bz

#打开定时任务编辑器
crontab -e
#每天晚上23:59同步时间
59 23 * * *  ntpdate ntp.api.bz

MySQL数据库时间同步

# 查看数据库当前时间
SELECT NOW();
#查看时区
show variables like '%zone%';
select @@time_zone;
#修改mysql全局时区为北京时间
set global time_zone = '+8:00';
#修改当前会话时区
set time_zone = '+8:00';
#立即生效
flush privileges;

安装解压软件

wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
tar zxf rarlinux-x64-5.3.0.tar.gz
rm -rf /usr/local/bin/rar
rm -rf /usr/local/bin/unrar
ln -s /root/rar/rar /usr/local/bin/rar
ln -s /root/rar/unrar /usr/local/bin/unrar

# 解压
unrar -o 解压目录 压缩包

修改数据库SQL模式

set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set @@SESSION.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/43460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flask 页面新增文件,存在重复文件时,返回错误消息

(40条消息) flask 读取文件夹文件,展示在页面,可以通过勾选删除_U盘失踪了的博客-CSDN博客 项目结构 这是一个基本的Flask应用程序,主要有两个路由,一个是index,用于显示所有存在的文件以及用于删除已选的文件&#…

Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范

场景: java中我们可以利用 Pattern 注解对某个入参进行规则校验,但有些特殊参数在接口入口处不方便校验,需要在代码中校验 一、使用 Pattern 注解校验 Pattern(regexp "^[a-zA-Z0-9]$", message "xxx号限输入字母、…

4.1 Bootstrap UI 编辑器

文章目录 1. Bootstrap Magic2. BootSwatchr3. Bootstrap Live Editor4. Fancy Boot5. Style Bootstrap6. Lavish7. Bootstrap ThemeRoller8. LayoutIt!9. Pingendo10. Kickstrap11. Bootply12. X-editable13. Jetstrap14. DivShot15. PaintStrap 以下是 15 款最好的 Bootstrap…

百度文心一言文心千帆大模型 ERNIE-Bot-turbo调用示例(golang版本)

百度的文心一言推出来也有一段时间了,但是接口部分一直没有公开,需要进行申请 最近,有朋友提供了文心千帆大模型的api权限,拿到了必须的参数,现在就来测试一下 下面是使用golang封装的文心千帆 ERNIE-Bot-turbo模型的调…

C++面向对象程序设计-基础入门(超详细)

目录 一、c概述 二、初识c 1、第一个c程序 2、c面向对象的三大特性(重要) 三、作用域运算符:: 1、使用关键字namespace创建一个命名空间 2、命名空间只能定义在全局 3、 命名空间嵌套 4、随时将新的成员加入命名空间 5、命…

DXFReader.NET 2023 Crack

DXFReader.NET 是一个 .NET 组件,允许直接从 AutoCAD 图形文件格式 DXF(也称为图形交换格式)查看、操作和打印。 DXFReader.NET 之 DXF 是 Drawing eXchange Format 的首字母缩写。DXF 是图形文件内容的复制,支持将文件从一个 CA…

picgo Request failed with status code 404

今天写picgo的时候,出现了一个错误,如何解决: 这里是repo的配置出现了问题,不过我的是因为粗心,把master写成了mater,emmmm 这里的repo要跟仓库的地址相同就是这一块:把这一块填到repo就行 然…

算法之图论

定义 图通常以一个二元组 G<V, E>表示&#xff0c;V表示节点集&#xff0c;E表示边集。节点集中元素的个数&#xff0c;称为图的阶。 若图G中的每条边都是没有方向的&#xff0c;称为无向图&#xff1b;每条边是由两个节点组成的无序对&#xff0c;例如节点V1和节点V2之…

论文阅读:矩阵乘法GEMM的cache优化,子矩阵的切分方法Anatomy of High-Performance MatrixMultiplication

矩阵乘法优化的知名论文goto paper&#xff1a; 矩阵乘法的优化需要将矩阵切分成子矩阵&#xff0c;用子矩阵相乘的结果组合为原矩阵相乘的结果&#xff1a; 上图是拆分矩阵的方法&#xff0c;M表示矩阵&#xff0c;X方向和Y方向的两个维度都是未知的。P表示横条或竖条&#x…

前端监控一vue指令实现埋点

前端监控一vue指令实现埋点 https://v2.vuejs.org/v2/guide/custom-directive.html 自定义指令 需要在main.js中执行 import Vue from vue // 自定义埋点指令 Vue.directive(track, {//钩子函数&#xff0c;只调用一次&#xff0c;指令第一次绑定到元素时调用。在这里可以…

Linux 下 nc 发送接收 udp、tcp数据

nc&#xff0c;全名叫 netcat&#xff0c;它可以用来完成很多的网络功能&#xff0c;譬如端口扫描、建立TCP/UDP连接&#xff0c;数据传输、网络调试等等&#xff0c;因此&#xff0c;它也常被称为网络工具的 瑞士军刀 。 一、只服务端使用nc 备注&#xff1a;这种方式只能发…

新能源汽车交流充电桩CP信号详解

随着新能源汽车的推广&#xff0c;交流充电桩迎来了巨大的市场需求&#xff0c;人们对车辆充电的便利性、安全性有着越来越高的要求。CP信号主要用于交流充电桩&#xff0c;充电桩和汽车之间只能通过CP信号进行通讯&#xff0c;判断、控制充电电流和状态。 汽车充电桩CP信号…

124.【SpringBoot 源码刨析C】

SpringBoot源码刨析C (三)、SpringBoot核心功能2.Web4.数据响应与内容协商(1).响应JSON&#xff08;1.1&#xff09;jackson.jarResponseBody&#xff08;1.1.1&#xff09;、返回值解析器&#xff08;1.1.2&#xff09;、返回值解析器原理 (1.2).SpringMVC到底支持哪些返回值(…

【STL】模拟实现简易 list

目录 1. 读源码 2. 框架搭建 3. list 的迭代器 4. list 的拷贝构造与赋值重载 拷贝构造 赋值重载 5. list 的常见重要接口实现 operator--() insert 接口 erase 接口 push_back 接口 push_front 接口 pop_back 接口 pop_front 接口 size 接口 clear 接口 别…

Window环境RabbitMq搭建部署

Erlang下载安装及配置环境变量 下载erlang&#xff0c;原因在于RabbitMQ服务端代码是使用并发式语言Erlang编写的 Erlang下载 Erlang官网下载&#xff1a; http://www.erlang.org/downloads Erlang国内镜像下载&#xff08;推荐&#xff09;&#xff1a; http://erlang.org/d…

旧版Xcode文件较大导致下载总是失败但又不能断点续传重新开始的解决方法

问题&#xff1a; 旧版mac下载旧版Xcode时需要进入https://developer.apple.com/download/all/?qxcode下载&#xff0c;但是下载这些文件需要登录。登录后下载中途很容易失败&#xff0c;失败后又必须重新下载。 解决方案&#xff1a; 下载这里面的内容都需要登录&#xff0…

Appium+python自动化(十九)- Monkey(猴子)参数(超详解)

前边几篇介绍了Monkey以及Monkey的事件&#xff0c;今天就给小伙伴们介绍和分享一下Monkey的参数。 首先我们看一下这幅图来大致了解一下&#xff1a; 1、Monkey 命令 基本参数介绍 -p <允许的包名列表> 用此参数指定一个或多个包。指定包之后&#xff0c;mon…

用html+javascript打造公文一键排版系统7:落款排版

一、公文落款的格式 公文落款包括单位署名和成文日期两个部分&#xff0c;其中成文日期中的数字 用阿拉伯数字将年、月、日标全&#xff0c;年份应标全称&#xff0c;月、日不编虚位&#xff08;即 1 不编为 01&#xff09;。 在实际应用工作中分为三种情况&#xff1a; &am…

【Selenium+Pytest+allure报告生成自动化测试框架】附带项目源码和项目部署文档

目录 前言 【文章末尾给大家留下了大量的福利】 测试框架简介 首先管理时间 添加配置文件 conf.py config.ini 读取配置文件 记录操作日志 简单理解POM模型 简单学习元素定位 管理页面元素 封装Selenium基类 创建页面对象 简单了解Pytest pytest.ini 编写测试…

保护数字世界的壁垒

随着科技的不断发展和互联网的普及&#xff0c;我们的生活日益依赖于数字化的世界。然而&#xff0c;随之而来的是网络安全威胁的不断增加。网络攻击、数据泄露和身份盗窃等问题已经成为我们所面临的现实。因此&#xff0c;网络安全变得尤为重要&#xff0c;我们需要采取措施来…