当前位置: 首页 > news >正文

CentOS7服务器安装Java,MySQL,Nginx,Maven,NodeJs

# 前言
Centos 7.9  

# 导出history记录
用于忘记了当时敲过哪些命令  

```shell
#!/bin/bash

# 定义输出文件
OUTPUT_FILE="all_users_history.txt"

# 清空或创建输出文件
> "$OUTPUT_FILE"

# 遍历所有用户的家目录
for USER_HOME in /home/* /root; do
    USER=$(basename "$USER_HOME")
    HISTORY_FILE="$USER_HOME/.bash_history"

    if [ -f "$HISTORY_FILE" ]; then
        echo "===== $USER 用户的 history =====" >> "$OUTPUT_FILE"
        cat "$HISTORY_FILE" >> "$OUTPUT_FILE"
        echo "" >> "$OUTPUT_FILE"
    else
        echo "$USER 用户的 .bash_history 文件不存在" >> "$OUTPUT_FILE"
    fi
done

echo "所有用户的 history 已导出到 $OUTPUT_FILE"

```

# Java、Maven
能使用yum的就使用yum  
不能使用的,或者yum仓库里没有需要的jdk,那么就去镜像源下载openjdk,然后配置PATH  
Maven同理  
```shell

vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/jdk-17.0.14+7
export MAVEN_HOME=/opt/apache/maven/apache-maven-3.9.9
export NODEJS_HOME=/opt/nodejs/node-v22.14.0-linux-x64
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODEJS_HOME/bin:$PATH

source /etc/profile
```

注意maven的配置,conf/settings.xml  
```xml
<localRepository>/opt/apache/maven/local-repo</localRepository>


  <mirrors>
        ...
        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>central</mirrorOf>
            <name>阿里云公共仓库</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
        ...
  </mirrors>

```

# MySQL

## 安装

```shell

yum install -y libaio numactl
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
rpm -qa gpg-pubkey*
yum install https://repo.mysql.com//mysql84-community-release-el7-1.noarch.rpm
yum install -y mysql-community-server


# 启动 MySQL 服务
sudo systemctl start mysqld
# 设置 MySQL 服务开机自启
sudo systemctl enable mysqld

# 获取初始临时密码
sudo grep 'temporary password' /var/log/mysqld.log
```

## 备份
记得定期备份数据库,数据量不大的话,可以使用的简单粗暴的全量备份  
```shell
#!/bin/bash

# 定义 MySQL 用户名
MYSQL_USER="mysql_backup_user"
# 定义要备份的数据库名
DATABASE_NAME="your_database_name"
# 定义备份文件存储目录
BACKUP_DIR="/data/tools/mysql/backup"
# 生成包含日期和时间戳的备份文件名
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

BACKUP_FILE="$BACKUP_DIR/${DATABASE_NAME}_${TIMESTAMP}.sql"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR


export MYSQL_PWD='mysql_backup_user_pwd'

mysqldump -u $MYSQL_USER $DATABASE_NAME > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "数据库备份成功,备份文件:$BACKUP_FILE"
else
    echo "数据库备份失败"
fi

# 删除超过30天的备份文件
delete_old_backups() {
    echo "$1 查找超过30天的备份文件..."
    # 查找备份目录中超过30天的文件
    OLD_BACKUPS=$(find $BACKUP_DIR -type f -name "${DATABASE_NAME}_*.sql" -mtime +30)

    if [ -z "$OLD_BACKUPS" ]; then
        echo "没有找到超过30天的备份文件。"
        return
    fi

    echo "以下文件将被删除:"
    echo "$OLD_BACKUPS"

    # 如果传入了参数(例如 confirm),则跳过确认
    if [ "$1" = "auto" ]; then
        echo "自动删除中..."
        find $BACKUP_DIR -type f -name "${DATABASE_NAME}_*.sql" -mtime +30 -exec rm -f {} \;
        if [ $? -eq 0 ]; then
            echo "文件删除成功。"
        else
            echo "文件删除失败。"
        fi
    else
        # 手动执行时,提示用户确认
        read -p "是否确认删除这些文件?(y/n): " CONFIRM
        if [ "$CONFIRM" = "y" ] || [ "$CONFIRM" = "Y" ]; then
            echo "正在删除文件..."
            find $BACKUP_DIR -type f -name "${DATABASE_NAME}_*.sql" -mtime +30 -exec rm -f {} \;
            if [ $? -eq 0 ]; then
                echo "文件删除成功。"
            else
                echo "文件删除失败。"
            fi
        else
            echo "取消删除操作。"
        fi
    fi
}

# 调用删除旧备份文件的函数
# 如果传入了参数(例如 auto),则自动删除
if [ "$1" = "auto" ]; then
    delete_old_backups "auto"
else
    delete_old_backups
fi
```

## 特殊插件
auth_socket插件,可以让用户在本机登录时,不输入密码直接进入终端  
```shell
mysql> use mysql;
mysql> select user, plugin from user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| debian-sys-maint | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | auth_socket           |
+------------------+-----------------------+
6 rows in set (0.00 sec)

```

# Nginx
直接用官网的yum源然后安装软件包就可以了  
```shell
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx

systemctl enable nginx
systemctl start nginx
systemctl reload nginx

yum install httpd-tools
```

# NodeJS
新版本的要求系统里有更高版本的GCC,可能需要先升级GCC  

```shell
wget https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz
tar -xvf node-v22.14.0-linux-x64.tar.xz -C /opt/nodejs/
cd /opt/nodejs/
ls
cd node-v22.14.0-linux-x64/
ls
pwd
vim /etc/profile
source /etc/profile
node -v
npm -v

npm config set registry https://registry.npmmirror.com
npm config set prefix /opt/nodejs/global
npm config set cache /opt/nodejs/cache

```
http://www.jsqmd.com/news/33250/

相关文章:

  • 2025年医院集中供氧系统厂家权威推荐榜单:中心供氧系统工程/空气终端/专业医疗设备带源头厂家精选
  • CentOS7安装异常登录封ip
  • CentOS7服务器部署GitLab
  • postgresql locale区域设置理解
  • CentOS7.9升级gcc
  • 关于模拟赛记录
  • 2025年电动阀门优质制造商推荐排行榜,电动阀门哪家好?
  • 20232423 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • raft 读请求源码走读
  • 2025年铱星模块生产商新推荐排行榜,专业铱星模块厂家权威测评
  • 跨平台的文件夹映射cifs
  • 2025年工业冷水机品牌供应商/加工厂/批量定制新推荐排行榜白皮书
  • 2025 年护眼食品品牌最新推荐榜单权威发布:聚焦老字号传承与新品牌实力,附选购指南
  • 详细介绍:【MongoDB的RLE压缩数据存储】
  • 模拟赛日志
  • 2025年工作服定制哪家工艺精湛?专业工作服定制生产厂推荐
  • 20251106noip模拟赛
  • 2025年安全检测检验公司排行榜:十大权威机构深度解析
  • 算法社Python基础入门面试题库(新手版含答案) - 指南
  • 2025年安全检测检验公司推荐榜前十名:专业洞察与选择指南
  • 开发管理
  • 错题+trick 集
  • WebStorm 解决无法正确识别Vue3组合式API的问题
  • 激活函数之Tanh
  • 深入解析:一键把本地项目推到 GitHub:通用脚本 + 小白友好指南
  • 2025年凝胶糖果代加工厂推荐,山东佰诺生物科技公司
  • Java的多态和重载
  • 2025 年分离机源头厂家最新推荐排行榜:聚焦国内优质品牌,助力企业精准选型碟片式分离机/离心分离机/全自动分离机公司推荐
  • TXC-38.4
  • ICPC 模板