Java 8

1. 下载

官网下载地址 下载完成后上传到 CentOS7 机器上
image.png

2. 解压

下载之后移动到一个指定的目录,这里以 /usr/local/java 为例:

  1. cd /usr/local/java
  2. # 解压 /usr/local/java/jdk1.8.0_321
  3. tar -zxvf jdk-8u321-linux-x64.tar.gz

3. 配置环境变量

vi /etc/profile

# 在文件末尾追加
# jdk
export JAVA_HOME=/usr/local/java/jdk1.8.0_321
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# esc :wq 保存

# 使生效
source /etc/profile
# 查看版本
java -version

# 查看环境变量 /usr/local/java/jdk1.8.0_321
echo $JAVA_HOME

MySQL 8

https://www.cnblogs.com/secretmrj/p/15600144.html

1. 卸载MariaDB

MariaDB是MySQL的一个分支,主要由开源社区维护。

  • CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库;
  • 如果直接安装MySQL,会和MariaDB的文件冲突;

因此,需要先卸载自带的MariaDB,再安装MySQL。

# 查看版本
rpm -qa|grep mariadb

# 卸载
rpm -e --nodeps 文件名

#检查是否卸载干净
rpm -qa|grep mariadb

# 检查是否安装mysql
rpm -qa|grep mysql
# 卸载
rpm -e --nodeps mysql文件名

2. 下载 MySQL

官网下载地址
image.png

3. 解压

  • .tar.gz后缀:tar -zxvf 文件名
  • .tar.xz后缀:tar -Jxvf 文件名
  1. 解压,操作目录 /usr/local

    # 解压后目录 /usr/local/mysql-8.0.28-linux-glibc2.12-x86_64
    tar -Jxvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
    
  2. 重命名 ```shell

    重命名

    mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql8

或者创建软链接(二选一)

ln -s mysql-8.0.28-linux-glibc2.12-x86_64 mysql8

<a name="sbIkZ"></a>
## 4. 环境变量
```shell
vim /etc/profile

# mysql8
export MYSQL_HOME=/usr/local/mysql8
export PATH=$PATH:${MYSQL_HOME}/bin
# esc :wq

# 使生效
source /etc/profile

# 查看版本
mysql --version

5. 创建用户组和用户

# 创建一个用户组:mysql
groupadd mysql
# 创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g mysql mysql

增加数据目录权限

# 更改属主和数组
chown -R mysql:mysql /usr/local/mysql8/
chown -R mysql:mysql /usr/local/mysql8/data/
chown -R mysql:mysql /usr/local/mysql8/logs/

# 更改模式
chmod -R 750 /usr/local/mysql8/data

6. my.cnf 配置文件

放置到 /usr/local/etc/my.cnf

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock

[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock

# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /usr/local/mysql8/data
log-bin    = /usr/local/mysql8/logs/binlog
innodb_data_home_dir      =/usr/local/mysql8/data
innodb_log_group_home_dir =/usr/local/mysql8/data
#日志及进程数据的存放目录
log-error =/usr/local/mysql8/logs/error.log
pid-file  =/usr/local/mysql8/mysqld.pid

# 服务端使用的字符集默认为8比特编码
character-set-server   = utf8mb4
lower_case_table_names = 1
autocommit             = 1

##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128

#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

binlog_format=mixed

binlog_expire_logs_seconds =864000

# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

7. 初始化

mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data --user=mysql --initialize-insecure
  • —defaults-file:指定配置文件(要放在—initialize 前面)
  • —user: 指定用户
  • —basedir:指定安装目录
  • —datadir:指定初始化数据目录
  • —intialize-insecure:初始化无密码

    8. 启动mysql

    ```shell

    safe 启动

    /usr/local/mysql8/bin/mysqld_safe —defaults-file=/usr/local/etc/my.cnf &

    配置环境变量可以用

    mysqld_safe —defaults-file=/usr/local/etc/my.cnf &

检查

ps -ef | grep mysql

<a name="QMlbR"></a>
## 9. 初始化密码
```shell
# 无密码登录方式
mysql -u root --skip-password
# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
mysql -u root -p
password:随机密码

# >mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tyros@2022';

# 刷新权限
FLUSH PRIVILEGES;

10. 创建远程连接用户

# 选择mysql数据库
USE mysql;
# 查看当前用户
SELECT user,host,plugin,authentication_string FROM user;

# 创建用户,任意主机访问
CREATE user 'root'@'%';
# 设置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'tyros@2022';
# 授权用户所有权限
GRANT ALL PRIVILEGES ON *.* TO "root"@"%";
# 刷新权限
FLUSH PRIVILEGES;

11. 注册系统服务开机自启

/usr/lib/systemd/system 目录下新建 mysql.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false

启动并设置开机自启

# 刷新配置
systemctl daemon-reload
# 开机自动启动
systemctl enable mysql
# 启动redis服务
systemctl start mysql

12. 开放防火墙 mysql:3306 端口

如果开启了防火墙,则外部无法访问 mysql,需要关闭防火墙或开放 mysql 3306 端口

# 查看已经开放的端口
firewall-cmd --list-ports

# 开放 mysql 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重新加载
firewall-cmd --reload

关闭防火墙

# 1.查看状态
systemctl status firewalld
firewall-cmd --state

# 2.启动防火墙
systemctl start firewalld
# 3.禁用防火墙
systemctl stop firewalld

# 4. 设置开机启动
systemctl enable firewalld
# 5.停止并禁用开机启动
systemctl disable firewalld

Redis 6

1. C 语言环境 - gcc

# 查看当前系统是否已经安装 gcc
gcc -v

# 安装 gcc
yum -y install gcc

2. 下载源码编译安装到指定目录

# 下载,我是在/usr/local下执行的下载,所以我的下载目录为:/usr/local/redis-6.2.6
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

# 解压 /usr/local/redis-6.2.6
tar -zxvf redis-6.2.6.tar.gz

# 编译
cd redis-6.2.6
make

# 指定安装目录并进行安装
make install PREFIX=/usr/local/redis

3. 通过守护进程方式启动

# 1. 从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cp /usr/local/redis-6.2.6/redis.conf /usr/local/redis/bin/

# 2. 修改redis.conf配置文件
cd /usr/local/redis/bin/
vi redis.conf
# 修改内容如下:
#daemonize 的值从 no 修改成 yes
daemonize yes

# 密码
requirepass tyros@2022

# 3. 启动服务
/usr/local/redis/bin/redis-server redis.conf *:6379

# 4. 查看进程来确定redis是否启动成功,非必须
ps -ef | grep redis

# 查看版本
./redis-server --version

4. 设置开机自启

第一种方式

# 1. 将redis自带的初始化脚本复制到 /etc/init.d/
cp /usr/local/redis-6.2.6/utils/redis_init_script /etc/init.d/redis

# 2. 修改脚本 见下图
vim /etc/init.d/redis

# 3. 修改读写权限,如果已有权限,可忽略
chmod +x /etc/init.d/redis

# 启动 
service redis start
# 停止
service redis stop

# 4. 开机自启
chkconfig --add redis

image.png
如果redis设置了密码,停止时就需要新增下面的配置:
image.png

第二种方式

切换到 /lib/systemd/system/ 目录,创建 redis.service 文件。命令如下:

cd /lib/systemd/system/
vim redis.service
[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecReload=ps -ef | grep redis|grep -v grep | awk '{print $2}' |xargs kill -9 && /usr/local/redis/bin/redis-server  /usr/local/redis/redis.conf
ExecStop=ps -ef | grep redis|grep -v grep | awk '{print $2}' |xargs kill -9
PrivateTmp=true

[Install]
WantedBy=multi-user.target

设置开机自启

# 刷新配置
systemctl daemon-reload
# 开机自动启动
systemctl enable redis.service
# 启动redis服务
systemctl start redis.service
# 查看服务状态
systemctl status redis.service
# 停止服务
systemctl stop redis.service
# 取消开机自动启动(卸载服务)
systemctl disable redis.service

5. 防火墙

如果开启防火墙,则外部无法访问 redis,需要关闭防火墙或开放 redis 6379 端口

# 查看已经开放的端口
firewall-cmd --list-ports

# 开放 redis 6379 端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent

# 重新加载
firewall-cmd --reload

关闭防火墙

# 1.查看状态
systemctl status firewalld
firewall-cmd --state

# 2.启动防火墙
systemctl start firewalld
# 3.禁用防火墙
systemctl stop firewalld

# 4. 设置开机启动
systemctl enable firewalld
# 5.停止并禁用开机启动
systemctl disable firewalld

Nginx 1.21.6

官网下载 参考:https://www.cnblogs.com/Ferda/p/13307203.html

1. 安装环境

# gcc-c++
yum install -y gcc-c++

# PCRE pcre-devel
yum install -y pcre pcre-devel

# zlib
yum install -y zlib zlib-devel

# OpenSSL
yum install -y openssl openssl-devel

2. 下载安装

下载 Nginx 压缩包,放置到 /usr/local 目录解压安装

# 解压缩
tar -zxvf /usr/local/nginx-1.21.6.tar.gz

# 进入 nginx 目录
cd /usr/local/nginx-1.21.6

# 使用默认配置
./configure

# 编译安装
make && make install

# 删除无用目录
rm -rf nginx-1.21.6

这时,nginx 就被安装到了 /usr/local/nginx 目录

3. 启动验证

# 防火墙开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload

# 启动 nginx
cd /usr/local/nginx/sbin/ && ./nginx

# 宿主机直接访问 ip

image.png
其他命令

# 此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit
# 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
# 重新加载配置
./nginx -s reload

4. 注册系统服务 开机自启

# 新建启动脚本
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
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 stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 重新加载系统配置
systemctl daemon-reload

# 使用 systemctl 启动前先停止 nginx 
./nginx -s stop

# 启动
systemctl start nginx

# 开机自启
systemctl enable nginx