常用软件安装

常用软件安装

1. JDK 安装

1.1 Windows 安装 JDK

1.1 安装前的准备

JDK8 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:4zea)

1.2 安装 JDK

解压免安装文件到指定目录,这里为 D:\dev\jdk1.8.0_77
下面提供一个 JDK 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("JAVA_HOME")="D:\dev\jdk1.8.0_77" ' 这里需要修改为 JDK 的安装目录
sysenv("CLASSPATH")=sysenv("CLASSPATH")+".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"
sysenv("Path")="%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;"+sysenv("Path")

wscript.echo "JDK environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 JDK 环境变量已配置完成。
JDK环境变量配置成功
亲测 Windows 10 系统通过上述方法配置环境变量后,需要打开系统环境变量配置界面,点击 两次确定 才能使 JDK 环境变量生效,见下图。
JDK环境变量配置后的操作
打开 cmd 命令窗口,输入 java -version 命令,出现下图则说明 JDK 安装成功。
JDK安装成功

1.2 CentOS7 安装 JDK

1.2.1 安装前的准备

JDK8 为例,这里提供安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:vik6)

通过 FileZillaFTP 客户端工具把安装文件传输到 CentOS7 主机即可。

1.2.2 安装 JDK

1.2.2.1 解压文件到指定安装目录

这里指定安装目录为 /usr/local/soft/jdk-8,执行以下命令

# 解压安装文件到 /usr/local/soft 目录
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local/soft
# 重命名 jdk 目录为 jdk-8
cd /usr/local/soft
mv jdk1.8.0_321 jdk-8
1.2.2.2 配置 JDK 环境变量

编辑 /etc/profile 文件,末尾追加下面内容,并保存退出。即:

# JDK 安装目录
export JAVA_HOME=/usr/local/soft/jdk-8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

通过 source /etc/profile 命令使 JDK 环境变量生效即可。

输入 java -version 命令,出现下图则说明 JDK 安装成功。
JDK安装成功

2. Maven 安装

2.1 安装前的准备

apache-maven-3.6.1 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:6hay)

2.2 安装 Maven

解压免安装文件到指定目录,这里为 D:\dev\apache-maven-3.6.1
注意:Maven 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中
注意:Maven 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中
注意:Maven 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中

下面提供一个 Maven 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("M2_HOME")="D:\dev\apache-maven-3.6.1" ' 这里需要修改为 Maven 的安装目录
sysenv("MAVEN_HOME")="D:\dev\apache-maven-3.6.1" ' 这里需要修改为 Maven 的安装目录
sysenv("Path")="%M2_HOME%\bin;%MAVEN_HOME%\bin;"+sysenv("Path")

wscript.echo "Maven environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 Maven 环境变量已配置完成。
Maven环境变量配置成功
亲测 Windows 10 系统通过上述方法配置环境变量后,需要打开系统环境变量配置界面,点击 两次确定 才能使 Maven 环境变量生效,见下图。
JDK环境变量配置后的操作
打开 cmd 命令窗口,输入 mvn –version 命令,出现下图则说明 Maven 安装成功。
Maven安装成功

2.3 Maven 本地仓库、阿里云镜像和全局 JDK 版本配置

Maven 本地仓库、阿里云镜像和全局 JDK 版本配置需要修改 settings.xml 文件,它位于 D:\dev\apache-maven-3.6.1\apache-maven-3.6.1\conf 目录下。下面提供对应配置,保存即可生效。

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  
  <!-- 本地仓库配置, 仓库位置可自行更改 -->
  <localRepository>D:/repo/maven/</localRepository>
  
  <pluginGroups>
  </pluginGroups>

  <proxies>
  </proxies>

  <servers>
  </servers>

  <mirrors>
    <!-- 阿里云镜像配置 -->
	<mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>
	<mirror>
		<id>alimaven</id>
		<mirrorOf>central</mirrorOf>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
	</mirror>
  </mirrors>

  <profiles>
    <!-- 全局 JDK 版本配置 -->
	<profile> 
		<id>jdk-1.8</id>  
		
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.8</jdk>
		</activation>  
		
		<properties>
			<maven.compiler.source>1.8</maven.compiler.source>
			<maven.compiler.target>1.8</maven.compiler.target>
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
		</properties>
	</profile> 
  </profiles>
</settings>

3. Gradle 安装

3.1 安装前的准备

gradle-4.6 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:akz0)

3.2 安装 Gradle

解压免安装文件到指定目录,这里为 D:\dev\gradle-4.6
注意:Gradle 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中
注意:Gradle 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中
注意:Gradle 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中

下面提供一个 Gradle 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("GRADLE_HOME")="D:\dev\gradle-4.6" ' 这里需要修改为 Gradle 的安装目录
sysenv("GRADLE_USER_HOME")="D:\repo\gradle" ' 自定义仓库位置
sysenv("Path")="%GRADLE_HOME%\bin;"+sysenv("Path")

wscript.echo "Gradle environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 Gradle 环境变量已配置完成。
Gradle环境变量配置成功
亲测 Windows 10 系统通过上述方法配置环境变量后,需要打开系统环境变量配置界面,点击 两次确定 才能使 Gradle 环境变量生效,见下图。
JDK环境变量配置后的操作
打开 cmd 命令窗口,输入 gradle -v 命令,出现下图则说明 Gradle 安装成功。
Gradle安装成功

3.3 Gradle 仓库源配置

Gradle 仓库源配置需要在 D:\dev\gradle-4.6\init.d 目录下创建一个文件,文件名为 init.gradle。下面提供对应配置,保存即可生效。

allprojects {
    // jar 包获取顺序配置
    repositories {
        // 从本地 Maven 仓库获取 jar 包
        maven { url 'file:///D:/repo/maven'}
        // 从本地 Maven 仓库获取 jar 包(和上一行配置相同, 但不冲突)
        mavenLocal()
        // 从国内网络仓库获取 jar 包(这里是阿里云远程仓库)
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        // 从国外网络仓库获取 jar 包
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        // 从 Apache 中央仓库获取 jar 包
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

init.gradle文件

4. Ant 安装

4.1 安装前的准备

apache-ant-1.10.8 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:abe1)

4.2 安装 Ant

解压免安装文件到指定目录,这里为 D:\dev\apache-ant-1.10.8
注意:

  • Ant 安装之前务必确保 JDK 已安装,并已添加 JAVA_HOME 变量到环境变量中。
  • Ant 安装目录中不允许有空格。

下面提供一个 Ant 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("ANT_HOME")="D:\dev\apache-ant-1.10.8" ' 这里需要修改为 Ant 的安装目录
sysenv("CLASSPATH")=sysenv("CLASSPATH")+".;%ANT_HOME%\lib"
sysenv("Path")="%ANT_HOME%\bin;"+sysenv("Path")
 
wscript.echo "Ant environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 Ant 环境变量已配置完成。
Ant环境变量配置成功
亲测 Windows 10 系统通过上述方法配置环境变量后,需要打开系统环境变量配置界面,点击 两次确定 才能使 Ant 环境变量生效,见下图。
JDK环境变量配置后的操作
打开 cmd 命令窗口,输入 ant -version 命令,出现下图则说明 Ant 安装成功。
Ant安装成功

5. Redis 安装

5.1 Windows 安装 Redis

5.1.1 安装前的准备

Redis-x64-3.2.100 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:heg8)

5.1.2 安装 Redis

解压免安装文件到指定目录,这里为 D:\dev\Redis-3.2.100

5.1.2.1 Redis 配置文件

Redis 配置文件是 D:\dev\Redis-3.2.100\redis.windows-service.conf。主要更改四个地方

  • port:端口号,默认是 6379
  • requirepass:密码设置,这里为 123456
  • bind:允许远程访问的 IP,默认为 127.0.0.1,这里为 0.0.0.0(允许所有 IP 远程访问)
  • protected-mode:保护模式开关,默认为 yes,这里为 no(允许外部网络直接访问)
bind 0.0.0.0

protected-mode no

port 6379

requirepass 123456
5.1.2.2 注册本地 Windows Redis 服务

注册本地 Windows Redis 服务后,可以设置开机自启动,也可以不进入 Redis 安装目录,通过命令行 net start Redis 启动 Redis

打开 cmd 命令窗口,进入 Redis 安装目录,执行以下命令

redis-server --service-install redis.windows-service.conf --loglevel verbose
5.1.2.3 启动 Redis 服务

打开 cmd 命令窗口,执行以下命令启动 Redis 服务。

net start Redis

启动Redis服务
至此,Redis 已安装配置完成。

5.2 CentOS7 安装 Redis

5.2.1 安装前的准备

Redis–6.2.6 为例,这里提供安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:4ugu)

通过 FileZillaFTP 客户端工具把安装文件传输到 CentOS7 主机即可。

5.2.2 安装 Redis

5.2.2.1 解压文件到指定安装目录

这里指定安装目录为 /usr/local/soft/redis-6,执行以下命令

# 解压安装文件到 /usr/local/soft 目录
tar -zxvf redis-6.2.6.tar.gz -C /usr/local/soft
# 重命名 redis-6.2.6 目录为 jdk-8
cd /usr/local/soft
mv redis-6.2.6 redis-6
5.2.2.2 编译 Redis

切换到 Redis 安装目录,执行 make 命令完成编译。编译成功如下:
编译

5.2.2.3 安装 Redis

同样地,切换到 Redis 安装目录,执行以下命令完成安装,即:

# PREFIX 用于指定 redis 安装目录
make PREFIX=/usr/local/soft/redis-6 install

安装成功如下:
安装

5.2.3 配置 Redis

编辑 /usr/local/soft/redis-6/redis.conf 文件,主要更改五个地方,如下:

  • bind:注释(允许所有 IP 远程访问)。
  • protected-mode:保护模式开关,默认为 yes,这里改为 no(允许外部网络直接访问)
  • port:端口号,默认是 6379
  • daemonize:守护进程开关,默认为 no,这里改为 yes(简单理解为后台运行)。
  • requirepass:密码设置,这里为 123456
# bind 127.0.0.1 -::1

protected-mode no

port 6379

daemonize yes

requirepass 123456

5.2.4 启动 Redis

执行以下命令,完成 redis 启动,即:

/usr/local/soft/redis-6/bin/redis-server /usr/local/soft/redis-6/redis.conf

5.2.5 配置 redis-cli

redis-cli 是一个命令,用于连接本地 Redis 服务。执行以下命令,实现在任意目录下执行 redis-cli 命令,即:

sudo cp /usr/local/soft/redis-6/src/redis-cli /usr/local/bin

连接本地 Redis 服务,如下:
在这里插入图片描述
执行以下命令关闭 Redis 服务,如下:

# 密码认证
auth "123456"
# 关闭 redis 服务
shutdown

关闭 redis 服务

6. Navicat

6.1 Navicat pJ

转载自 Navicat Premium v15.0.26 中文最新pJ版(附:jH工具)

这里提供安装文件和pJ工具。
百度网盘(提取码:5354)
天翼云盘(访问码:mt8x)

Navicat 激活

6.2 连接 Oracle 数据库问题

使用 Navicat 连接 Oracle 数据库时,会出现如下图提示:
Navicat 连接 Oracle 数据库出现问题
解决方法:在 Oracle官网 下载 instantclient 并配置重启 Nvaicat 即可。
在这里插入图片描述
注意:对于 Windows,不管是 32 位还是 64 操作系统,都必须下载 32instantclient,否则会出现 Oracle library is not loaded. 提示。

7. MinIO 安装

7.1 安装前的准备

minio-go1.12.8 为例,这里提供安装配置需要用到的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:bva1)

7.2 安装 MinIO

  • 复制 minio.exe 文件到指定目录,这里为 D:\dev\minio-go1.12.8\
  • D:\dev\minio-go1.12.8\ 目录下创建 minio.bat 文件,填写下面的文本并保存:
    ::设置账号
    set MINIO_ACCESS_KEY=admin
    ::设置密码(要求必须8位以上)
    set MINIO_SECRET_KEY=12345678
    ::指定端口号(9001)和文件存放路径(D:\minio-go1.12.8\data)安装启动 minio
    .\minio.exe server --address :9001 D:\dev\minio-go1.12.8\data
    
  • 双击 minio.bat 文件运行,D:\dev\minio-go1.12.8\ 目录下多出一个 data 目录,说明 MinIO 安装成功。安装 minio安装完成
  • 浏览器打开 http://127.0.0.1:9001/,输入账号密码登录(这里是 admin/12345678)即可。
    打开登录页面
    至此,MinIO 安装完成。

7.3 配置 MinIO

7.3.1 注册本地 Windows MinIO 服务

注册本地 Windows MinIO 服务后,可以设置开机自启动,也可以不借助 minio.bat 批处理文件通过命令行 net start MinIO 启动 MinIO

MinIO 服务注册需要借助 Windows Service Wrapper 小工具(7.1 安装前的准备 已提供,即 winsw-1.18-bin.exe 文件)

  • D:\dev\minio-go1.12.8 文件夹下新建一个 logs 文件夹,用于存放日志。创建日志目录
  • 复制 winsw-1.18-bin.exe 文件到 D:\dev\minio-go1.12.8 目录下,并重命名为 minio-service.exe
  • D:\dev\minio-go1.12.8\ 目录下创建 minio-service.xml 文件,填写下面的文本并保存:
    <service>
    	<id>Minio</id>
    	<name>MinIO Service</name>
    	<description>MinIO is a High Performance Object Storage</description>
    	<logpath>D:\dev\minio-go1.12.8\logs</logpath>
    	<log mode="roll-by-size">
    		<sizeThreshold>10240</sizeThreshold>
    		<keepFiles>8</keepFiles>
    	</log>
    	<executable>D:\dev\minio-go1.12.8\minio.bat</executable>
    </service>
    
    注册服务
  • 安装 MinIO 服务
    管理员身份 打开 cmd 命令窗口,进入 D:\dev\minio-go1.12.8 文件夹,执行以下命令(注意:一定要以 管理员身份 打开 cmd 命令窗口,否则以下命令执行会一直报错)。
    minio-service.exe install
    
    MinIO 就是启动的服务名字,如果执行上面的命令出现错误,先执行 minio-service.exe uninstall 卸载服务,再次输入上面的命令即可。

至此,MinIO 服务已配置完成。

7.3.2 设置 Minio 永久下载链接

MinIO 永久下载链接设置需要借助 mc.exe 小工具(7.1 安装前的准备 已提供)

  • 复制 mc.exe 文件到 D:\dev\minio-go1.12.8 目录下。
  • 打开 cmd 命令窗口,进入 D:\dev\minio-go1.12.8 文件夹,依次执行以下命令:
    # 增加 service 配置
    mc config host add minio http://127.0.0.1:9001 账号 密码 S3v4
    # 开放管理,配置下载策略,可直接通过 url 下载
    mc policy public minio/桶(bucket)名称
    mc policy set download minio/桶(bucket)名称
    
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    至此,MinIO 永久下载链接已配置完成。
    原来 web 下载路径是 http://127.0.0.1:9001/minio,现在直接通过 url 下载则把路径中的 minio 去掉,即 http://127.0.0.1:9001/桶名称/文件名.扩展名

8. RabbitMQ 安装

8.1 Windows 安装 RabbitMQ

8.1.1 安装前的准备

RabbitMQ-3.9.13 为例,这里提供安装配置需要用到的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:9fuz)

8.1.2 安装 RabbitMQ

由于 RabbitMQ 服务端代码是使用并发式语言 Erlang 编写的,因此安装 RabbitMQ 之前必须先安装 Erlang

8.1.2.1 Erlang 安装(以 Erlang-24.2.1 为例)

双击 otp_win64_24.2.1.exe 文件开始安装。由于 Erlang 属于傻瓜式安装软件,一直点击 Next 即可,这里不作描述说明。

8.1.2.2 Erlang 环境变量配置

下面提供一个 Erlang 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("ERLANG_HOME")="D:\dev\erl-24.2.1" ' 这里需要修改为 Erlang 的安装目录
sysenv("Path")="%ERLANG_HOME%\bin;"+sysenv("Path")
 
wscript.echo "Erlang environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 Erlang 环境变量已配置完成。

亲测 Windows 10 系统通过上述方法配置环境变量后,需要打开系统环境变量配置界面,点击 两次确定 才能使 Erlang 环境变量生效,见下图。
JDK环境变量配置后的操作
打开 cmd 命令窗口,输入 erl 命令,出现下图则说明 Erlang 安装成功。
在这里插入图片描述

8.1.2.3 RabbitMQ 安装
  • 解压免安装文件到指定目录,这里为 D:\dev\rabbitmq_server-3.9.13
  • RabbitMQ 环境变量配置
    下面提供一个 RabbitMQ 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。
    on error resume next
    ' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
    set sysenv=CreateObject("WScript.Shell").Environment("system")
    ' 添加变量
    sysenv("RABBITMQ_SERVER")="D:\dev\rabbitmq_server-3.9.13" ' 这里需要修改为 RabbitMQ 的安装目录
    sysenv("Path")="%RABBITMQ_SERVER%\sbin;"+sysenv("Path")
    
    wscript.echo "RabbitMQ environment variable configuration succeeded"
    
    使用时双击保存的文件,看到下面的提示框,说明 RabbitMQ 环境变量已配置完成。
    在这里插入图片描述
  • 安装 plugins 插件
    打开 cmd 命令窗口,进入 sbin 安装目录,执行以下命令
    rabbitmq-plugins.bat enable rabbitmq_management
    
    出现下图则说明 plugins 插件安装成功:
    在这里插入图片描述
  • 启动 RabbitMQ
    打开 cmd 命令窗口,进入 sbin 安装目录,执行以下命令
    rabbitmq-server.bat
    
    出现下图则说明 Rabbit 启动成功:
    在这里插入图片描述
    浏览器打开 http://127.0.0.1:15672/,输入账号密码登录(默认是 guest/guest)即可。
    在这里插入图片描述
    至此,RabbitMQ 安装完成。

8.1.3 配置 RabbitMQ 之前遇到的问题

RabbitMQ 安装完成后,打开 cmd 命令窗口,进入 sbin 安装目录,执行 rabbitmqctl status 命令报错,如下:
在这里插入图片描述
这是因为 Erlangcookie 出现问题,Erlang 安装会生成两个 cookie 文件:

  • C:\Windows\System32\config\systemprofile\.erlang.cookie
  • C:\用户\计算机用户名\.erlang.cookie

解决方案:

  • C:\用户\计算机用户名\.erlang.cookie 文件复制替换到 C:\Windows\System32\config\systemprofile\.erlang.cookie 目录中
  • 执行 net stop RabbitMQ && net start RabbitMQ 命令重启 RabbitMQ 服务

8.1.4 RabbitMQ 配置

8.1.4.1 注册本地 Windows RabbitMQ 服务

注册本地 Windows RabbitMQ 服务后,可以设置开机自启动,也可以不进入 sbin 目录通过命令行 net start RabbitMQ 启动 RabbitMQ

管理员身份 打开 cmd 命令窗口,进入 D:\dev\rabbitmq_server-3.9.13\sbin 文件夹,执行以下命令(注意:一定要以 管理员身份 打开 cmd 命令窗口,否则以下命令执行会一直报错)。

rabbitmq-service.bat install

RabbitMQ 就是启动的服务名字,如果执行上面的命令出现错误,先执行 rabbitmq-service.bat uninstall 卸载服务,再次输入上面的命令即可。

至此,RabbitMQ 服务已配置完成。

8.1.4.2 用户相关配置

以下所有命令,均需要打开 cmd 命令窗口,进入 sbin 安装目录,执行

  • 查看已有用户及其角色

    rabbitmqctl.bat list_users
    

    在这里插入图片描述

  • 创建用户

    rabbitmqctl.bat add_user 用户名 密码
    

    在这里插入图片描述

  • 设置用户角色
    通过 rabbitmqctl.bat list_users 命令可以发现,刚才创建的用户中括号内容为空,这是因为没有给定该用户角色。
    在这里插入图片描述
    RabbitMQ 用户角色可分为 5 类:超级管理员、监控者、策略制定者、普通管理者及其他。

    1. 超级管理员(administrator)
      可登陆管理控制台(启用 management plugin 情况下),可查看所有信息,并且可以对用户,策略(policy) 进行操作。

    2. 监控者(monitoring)
      可登陆管理控制台(启用 management plugin 情况下),同时可以查看 RabbitMQ 节点相关信息(进程数,内存使用情况,磁盘使用情况等) 。

    3. 策略制定者(policymaker)
      可登陆管理控制台(启用 management plugin 情况下),同时可以对策略(policy) 进行管理。

    4. 普通管理者(management)
      仅可登陆管理控制台(启用 management plugin 情况下),无法看到节点信息,也无法对策略(policy) 进行管理。

    5. 其他
      无法登陆管理控制台,通常就是普通的生产者和消费者。

    给定用户角色

    # 给定单个角色
    rabbitmqctl.bat set_user_tags 用户名 角色名
    # 给定多个角色
    rabbitmqctl.bat set_user_tags 用户名 角色名1 角色名2...
    

    在这里插入图片描述

  • 修改用户密码

    rabbitmqctl change_password 用户名 新密码
    
  • 删除用户

    rabbitmqctl.bat delete_user 用户名
    
8.1.4.3 权限相关配置

用户给定了角色,还需要设置权限。

按官方文档,用户权限指的是用户对 exchangequeue 的操作权限。包括配置权限,读写权限。
配置权限会影响到 exchangequeue 的声明和删除。
读写权限会影响到从 queue 里取消息,向 exchange 发送消息及 queueexchange 的绑定(binding) 操作。

如:
queue 绑定到某 exchange 上,需要具有 queue 的可写权限,以及 exchange 的可读权限。
exchange 发送消息需要具有 exchange 的可写权限。
queue 里取数据需要具有 queue 的可读权限。

权限相关命令为:

  • 设置用户权限

    rabbitmqctl set_permissions -p VHostPath 用户名 ConfP WriteP ReadP
    
  • 查看(指定hostpath) 所有用户的权限信息

    rabbitmqctl list_permissions [-p VHostPath]
    
  • 查看指定用户的权限信息

    rabbitmqctl list_user_permissions 用户名 
    
  • 清除用户的权限信息

    rabbitmqctl clear_permissions [-p VHostPath] 用户名
    

8.2 CentOS7 安装 RabbitMQ

8.2.1 安装前的准备

rabbitmq-server-3.8.14 为例,这里提供安装、部署需要用到的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:ulw6)

通过 FileZillaFTP 客户端工具把安装文件传输到 CentOS7 主机即可。

8.2.2 安装 RabbitMQ

转载自 Linux离线安装RabbitMQ
CentOS7 安装 RabbitMQ

9. Jenkins 安装、项目部署

9.1 安装前的准备

Jenkins 2.319.3 为例,这里提供安装、部署需要用到的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:8rvk)

9.2 安装 Jenkins

由于 Jenkins 属于傻瓜式安装软件,一直点击 Next 即可,这里进行简单描述说明。

  • 出现下图选择 Run service as LocalSystem(no recommended),即:
    Run service as LocalSystem(no recommended)

  • 出现下图可以更改端口号,默认为 8080,这里更改为 8081(端口号范围在 1-65535 之间,只要该端口号不被占用即可。Jenkins 也为我们考虑到了这一点,需要点击 Test Port,并且通过测试之后才能点击 Next),即:
    更改端口号

  • 出现下图需要选择 JDK 安装位置(由于 Jenkins 使用 Java 语言编写,因此安装需要依赖 JDK),即:
    选择 JDK 安装位置

9.3 配置 Jenkins

9.3.1 更改工作目录

Jenkins 安装完成后,Jenkins 相关服务已启动,浏览器打开 http://127.0.0.1:8081 即可进行界面化的配置,但这里建议先更改 Jenkins 工作目录,再进行界面化的配置(Jenkins 工作目录用于存放项目(如 Git 拉取的项目)文件等,默认在 CProgramData 隐藏文件,这里更改为 D:\workspace\Jenkins)。

Jenkins 工作目录的更改需要修改 jenkins.xml 文件,它位于 Jenkins 安装目录。下面提供对应配置,保存并执行 net stop Jenkins && net start Jenkins 命令重启 Jenkins 服务即可。
在这里插入图片描述

Jenkins 更改工作目录

<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins automation server.</description>
  <env name="JENKINS_HOME" value="D:\workspace\Jenkins"/>

  <executable>D:\dev\jdk1.8.0_77\\bin\java.exe</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "D:\dev\Jenkins\jenkins.war" --httpPort=8081 --webroot="D:\workspace\Jenkins\war"</arguments>

  <logmode>rotate</logmode>

  <onfailure action="restart"/>
  
  <extensions>
    <extension enabled="true" className="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
      <pidfile>D:\workspace\Jenkins\jenkins.pid</pidfile>
      <stopTimeout>10000</stopTimeout>
      <stopParentFirst>false</stopParentFirst>
    </extension>
  </extensions>
</service>

9.3.2 更改插件源

Jenkins 通过安装插件可以拥有更多的功能,而插件源更改为国内源(这里使用清华大学源) 则可以获得更快更稳定的下载速度。

Jenkins 插件源的更改需要修改 hudson.model.UpdateCenter.xml 文件,它位于 Jenkins 工作目录。下面提供对应配置,保存并执行 net stop Jenkins && net start Jenkins 命令重启 Jenkins 服务即可。

在这里插入图片描述

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

9.3.3 界面化配置

浏览器打开 http://127.0.0.1:8081 即可进行界面化配置。

9.3.3.1 解锁 Jenkins

打开 Jenkins 工作目录下的 \secrets\initialAdminPassword 文件,粘贴到管理员密码框,并点击继续即可,即:
解锁 Jenkins

9.3.3.2 安装推荐插件

接下来就是插件的安装,这里建议安装 Jenkins 推荐的插件,点击安装推荐的插件即可:
安装推荐的插件

点击安装推荐的插件后,等待插件自动安装完成即可。
注:如果出现部分插件安装失败,点击重试尝试多次安装,重试多次仍然安装失败,点击继续就好。
插件安装完成

9.3.3.3 创建管理员用户

管理员用户的创建,填写用户名密码邮箱等(其中邮箱任意,符合邮箱规则即可),点击保存并完成即可。
创建管理员用户

9.3.3.4 实例配置

实例配置,使用默认配置,点击保存并完成即可。
实例配置

至此,Jenkins 界面化配置已完成。

9.3.3.5 插件安装失败问题

上面安装推荐插件的过程中,出现了部分插件安装失败的问题。
这是因为 Jenkins 版本导致的,因此建议从 Jenkins 官网 下载最新版本进行安装。

既然出现了问题,就需要解决问题。进入 Jenkins 管理页面,点击 Manage Jenkins,即可看到插件缺少的修复建议,如下:
插件缺少的修复建议
页面往下滑动,就能看到具体的修复建议,点击或自动升级即可:
或自动升级
勾选安装完成后重启Jenkins(空闲时),等待升级完成并自动重启即可:
在这里插入图片描述

Jenkins 重启完成后,登录进入 Jenkins 管理页面,再次点击 Manage Jenkins,可以发现插件缺少的问题已解决,如下:
插件缺少问题解决

9.3.4 安装角色授权管理和 Node.js 插件

  • 角色授权管理 插件(Role-based Authorization Strategy)可以对构建的项目进行授权管理,让不同用户管理不同的项目,并且可以通过正则匹配对不同用户进行权限的划分。如,A用户 能够看到 项目A,而 B用户 看不到 项目A。
  • Node.js 插件(NodeJS)可以实现前端项目的部署。
9.3.4.1 安装、配置角色授权管理插件

进入 Jenkins 管理页面,先点击 Manage Jenkins,再点击 Manage Plugins,即可进入插件安装页面,即:
在这里插入图片描述
接下来点击可选插件,搜索 role,并勾选 Role-based Authorization Strategy 插件,最后点击 Download now and install after restart 即可:
在这里插入图片描述

勾选安装完成后重启Jenkins(空闲时),等待角色授权管理插件安装完成并自动重启即可:
在这里插入图片描述

Role-based Authorization Strategy 插件安装完成后,需要进行简单的配置使其生效。具体操作是先点击 Manage Jenkins,再点击 Configure Global Security,在授权策略中选择 Role-Based Strategy,最后保存即可:
在这里插入图片描述
在这里插入图片描述

保存成功之后,可以发现 Security 标签下多出一个 Manage and Assign Roles 菜单,说明角色授权管理插件安装配置完成。
在这里插入图片描述

9.3.4.2 安装 Node.js 插件

可选插件 中搜索 nodejs,并勾选 Role-based Authorization Strategy 插件,最后点击 Download now and install after restart 即可:
在这里插入图片描述

勾选安装完成后重启Jenkins(空闲时),等待 NodeJS 插件安装完成并自动重启即可:
在这里插入图片描述

9.3.5 全局工具配置

全局工具配置,就是配置项目部署中,会用到的诸如 MavenJDKGitGradleAntNodeJS 等工具的安装目录。

进入 Jenkins 管理页面,先点击 Global Tool Configuration,即可进入全局工具配置页面,即:
在这里插入图片描述
以配置 JDK 为例,说明相关工具的配置过程,如下:
在这里插入图片描述

9.3.6 配置禁止杀死衍生进程

Jenkins 默认在 build 结束后会 kill 掉所有的衍生进程。也就是说,诸如本来通过 java -jar 命令启动的项目,在 Jenkins 构建结束后就会退出,导致项目无法正常启动。

解决方法是增加一个环境变量,它是一个 KV 键值对,键是 BUILD_ID,值是 DontKillMe
具体操作是先点击 Manage Jenkins,再点击 Manage nodes and clouds,通过设置图标打开节点配置页面,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照下图进行设置,设置完成后,点击保存即可,如下:
在这里插入图片描述

9.4 部署项目

9.4.1 部署后端项目

Gradle 项目,打成 jar 包为例,这里先说一下整体思路,即:

  • Git 上拉取最新的项目代码,并通过 Gradle 工具打成 jar 包(从 Git 上拉取的最新代码位于 Jenkins 工作目录下,即 jar 包也在 Jenkins 工作目录下)。
  • 停止上次运行的项目(通过端口号关闭相关进程)。
  • 打包备份上次运行的项目(存档,包括 jar 包、日志等所有子目录和文件)。
  • 删除上次运行项目的所有子目录和文件(包括 jar 包、日志等所有子目录和文件)。
  • 复制 jar 包到项目运行目录。
  • 从运行目录启动项目。

注:1) 每个项目在 Jenkins 工作目录下都会有一个独立的文件夹,这个文件夹保存了 Git 上拉取下来的项目代码;2) 项目运行目录则是自定义的一个文件夹。

9.4.1.1 新建 Item

进入 Jenkins 管理页面,点击新建Item,填写项目名称,项目类型选择 Freestyle project,最后确定,来到项目配置页面。

说明:为了便于项目的授权管理,建议在项目名称前加上前缀。如,background_项目名称(表示后端项目)。
在这里插入图片描述
在这里插入图片描述

9.4.2.2 项目配置
9.4.2.2.1 General

填写项目的基本信息,如,备注、项目构建等。这里可以完全不填写,跳过即可
在这里插入图片描述

9.4.2.2.2 源码管理

简单来说,这里填写的是从哪里拉取项目代码。以 Git 为例,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.4.2.2.3 构建触发器

设置构建相关操作,如,项目构建顺序、定时运行构建脚本等。这里以定时构建为例,设置每天 23 点定时构建,如下:
在这里插入图片描述

9.4.2.2.4 构建环境

设置构建用到的工具等,这里使用 Gradle 构建,可供选项中没有,跳过即可
在这里插入图片描述

9.4.2.2.5 构建

项目部署过程中最主要的环节,这里主要是配置项目部署的步骤。说白了,就是把部署步骤编写成对应的脚本。

说明:从 Git 上拉取最新项目代码的操作不需要在构建中配置,源码配置中已经完成了这项配置。

  • 停止、备份、删除上次运行项目
    在这里插入图片描述
    在这里插入图片描述

    ::脚本所在目录
    set shellDir=D:\code\shell\background_test
    
    ::停止上次启动项目并备份和移除相关文件
    start %shellDir%\stop.bat
    

    stop.bat

    @echo off
    ::要释放的端口号
    set port=8090
    ::运行项目目录
    set targetDir=D:\code\jar\background_test
    
    ::日期时间后缀(格式:YYYYMMDDHHmmss)
    set DATETIME=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
    ::打包软件所在目录,这里使用 WinRAR 打包
    set winRARDir="C:\Program Files\WinRAR"
    ::备份文件存放目录
    set backupDir=D:\code\backup\background_test
    
    ::释放端口号
    for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
        taskkill /f /pid %%m
    )
    
    ::打包备份
    %winRARDir%\Rar.exe a -k -r -s -m3 %backupDir%\background_test_%DATETIME%.zip %targetDir%\
    
    ::删除指定目录下的所有文件(不包括 .bat 文件)
    cd /d %targetDir%
    dir /b|find /v ".bat">files
    for /F %%a in (files) do del /q %%a
    
    ::删除指定目录下的所有目录
    for /d %%i in (%targetDir%\*) do rmdir /s/q %%i
    
    exit
    
  • 使用 Gradle 构建项目
    在这里插入图片描述
    在这里插入图片描述

  • 复制 jar 包并运行项目
    在这里插入图片描述
    在这里插入图片描述

    ::脚本所在目录
    set shellDir=D:\code\shell\background_test
    
    ::复制项目文件
    start %shellDir%\copy.bat
    
    ::启动项目
    start %shellDir%\run.bat
    

    copy.bat

    @echo off
    
    ::被复制的源目录,即 Jenkins 工作目录
    set sourceDir=D:\workspace\Jenkins\workspace\background_test\build\libs
    
    ::目标目录
    set targetDir=D:\code\jar\background_test
    
    ::复制并覆盖文件及目录
    xcopy /y /c /h /r /s /q %sourceDir% %targetDir%
    
    exit
    

    run.bat

    @echo off
    set targetDir=D:\code\jar\background_test
    set javaexe="%JAVA_HOME%\bin\java"
    
    cd %targetDir%
    %javaexe% -jar %targetDir%\background_test.jar
    
  • 打印项目启动日志的一部分
    这里需要用到一个工具 tail,由于 Windows 系统默认没有该工具,因此需要自行安装(安装前准备中已提供该软件的安装文件,解压缩到 C:\Windows\System32 目录下即可完成安装)。
    在这里插入图片描述
    在这里插入图片描述

9.4.2.2.6 构建后操作

设置构建完成后的操作,如,删除Jenkins 工作目录下的项目文件夹。如果不配置,跳过即可

所有配置完成后,点击保存即可,即:
在这里插入图片描述

保存成功后,就能看到刚刚创建的项目。这时,我们可以执行手动构建更改项目配置等操作,如下:
在这里插入图片描述
查看上一次构建成功或失败的输出日志,如下(以构建成功为例):
在这里插入图片描述
在这里插入图片描述

9.4.3 部署前端项目

Node 项目,最终构建成文件夹并拷贝到 Nginx 目录为例,这里先说一下整体思路,即:

  • Git 上拉取最新的项目代码,并通过 Node 工具构建成文件夹(从 Git 上拉取的最新代码位于 Jenkins 工作目录下,即构建结果,也就是文件夹也在 Jenkins 工作目录下)。
  • 打包备份上次运行的项目(就是打包 Nginx 目录下的项目文件夹)。
  • 删除上次运行的项目(就是删除 Nginx 目录下项目文件夹的所有子目录和文件,不删除项目文件夹本身)。
  • 复制构建结果(文件夹)到 Nginx 目录下的项目文件夹。
9.4.3.1 构建环境

说明:由于 新建ItemGeneral源码管理构建触发器 与后端项目部署配置一样,这里不再重复。

在这里插入图片描述

9.4.3.2 构建
  • 备份、删除上次运行项目
    在这里插入图片描述

    ::脚本所在目录
    set shellDir=D:\code\shell\background_test
    
    ::停止上次启动项目并备份和移除相关文件
    start %shellDir%\stop.bat
    

    stop.bat

    @echo off
    set targetDir=D:\dev\nginx-1.12.2
    
    ::日期时间后缀(格式:YYYYMMDDHHmmss)
    set DATETIME=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
    set winRARDir="C:\Program Files\WinRAR"
    set backupDir=D:\code\jar\foreground_test
    
    ::打包备份
    %winRARDir%\Rar.exe a -k -r -s -m3 %backupDir%\foreground_test_%DATETIME%.zip %targetDir%\html\foreground_test\
    
    ::删除指定目录下的所有文件
    cd /d %targetDir%\html\foreground_test
    dir /b|find /v "*">files
    for /F %%a in (files) do del /q %%a
    
    ::删除指定目录下的所有目录
    for /d %%i in (%targetDir%\html\foreground_test\*) do rmdir /s/q %%i
    
    exit
    
  • 使用 Node 构建项目
    在这里插入图片描述

  • 复制构建结果(文件夹)到 Nginx 目录下的项目文件夹
    在这里插入图片描述

    ::脚本所在文件夹
    set shellDir=D:\code\shell\foreground_test
    
    ::复制项目文件到 nginx 目录
    start %shellDir%\copy.bat
    

    copy.bat

    @echo off
    ::被复制的源文件夹
    set sourceDir=D:\workspace\Jenkins\workspace\foreground_test\foreground_test\
    ::目标文件夹
    set targetDir=D:\dev\nginx-1.12.2\html
    
    ::复制并覆盖文件及文件夹
    xcopy /y /c /h /r /s /q %sourceDir% %targetDir%\foreground_test
    
    exit
    

所有配置完成后,点击保存即可,即:
在这里插入图片描述

保存成功后,就能看到刚刚创建的项目,如下:
在这里插入图片描述

9.5 视图配置

前面创建了两个项目,分别是 background_testforeground_test。它们现在的视图如下:
在这里插入图片描述
为了便于区分,可以通过视图来管理它们,最终实现把它们分别放到不同的视图中,具体操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存成功后,效果如下:
在这里插入图片描述

9.6 用户配置

主要是用户的新建和删除。具体操作是先点击 Manage Jenkins,再点击 Manage Users,进入用户列表页面,最后点击新建用户,填写用户信息,即可完成用户的创建,如下:
在这里插入图片描述
在这里插入图片描述
新建用户成功之后,用户列表中就能看到刚刚创建的用户,并且可以对用户执行删除等操作,如下:
在这里插入图片描述

9.7 角色权限配置

前面安装了角色授权管理插件Role-based Authorization Strategy),这里对其如何授权进行简单的描述。

9.7.1 创建全局角色

以创建一个全局只读角色为例。

具体操作是先点击 Manage Jenkins,再点击 Manage and Assign Roles,最后点击 Manage Roles,进入角色管理页面,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.7.2 创建项目角色

以创建一个前端项目角色为例。

具体操作是先点击 Manage Jenkins,再点击 Manage and Assign Roles,最后点击 Manage Roles,进入角色管理页面,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

9.7.3 给用户分配角色

给用户分配角色,也就是将用户和角色关联起来。前面创建了一个用户(fore_user),现在给他授予全局只读用户权限,以及只能管理前端项目的权限。

9.7.3.1 给用户授予全局只读用户权限

具体操作是先点击 Manage Jenkins,再点击 Manage and Assign Roles,最后点击 Assign Roles,进入角色分配页面,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.7.3.2 给用户授予只能管理前端项目的权限

具体操作是先点击 Manage Jenkins,再点击 Manage and Assign Roles,最后点击 Assign Roles,进入角色分配页面,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

此时,切换 fore_user 用户登录,可以看到该用户只有全局只读权限,并且只能管理前端项目,如下:
在这里插入图片描述

9.8 扩展

9.8.1 配置 Gradle 参数

这里以 指定 Gradle 仓库配置 Gradle 打包参数 为例,如下:
在这里插入图片描述

#开启线程守护,第一次编译时开线程,之后就不会再开
org.gradle.daemon=true
#配置编译时的虚拟机大小
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#开启并行编译,相当于多条线程构建
org.gradle.parallel=true
#启用新的孵化模式
org.gradle.configureondemand=true
#指定仓库目录
gradle.user.home=D:\\repository\\gradle

9.8.2 SSH 传输项目

假设 Jenkins 安装在 Windows 服务器,而项目部署在 Linux 服务器,因此,项目构建完成后需要传输到 Linux 服务器并执行启动命令。

当然项目文件传输到 Linux 服务器有多种工具,这里以 SSH 为例,如下:
首先需要在 Jenkins 上安装 Publish Over SSH 插件。
接着通过 Manage Jenkins → System Configuration → Configure System 配置 Linux 服务器,即:
在这里插入图片描述
在这里插入图片描述
最后,配置构建完成后传输项目文件并执行启动命令,即:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10. Linux 离线安装 Nginx

转载自 无法联网的Linux环境离线安装Nginx

这里提供安装需要的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:xzu9)

Linux 离线安装 Nginx

11. MySQL 安装

11.1 基于 CentOS7 的 MySQL 安装

11.1.1 安装前的准备

MySQL 8.x 为例,这里提供对应安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:9tvm)
MySQL 官网下载

通过 FileZillaFTP 客户端工具把安装文件传输到 CentOS7 主机即可。

11.1.2 安装 MySQL

11.1.2.1 解压文件到指定安装目录

这里指定安装目录为 /usr/local/soft/mysql-8,执行以下命令

# 解压安装文件到 /usr/local/soft 目录
tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz -C /usr/local/soft
# 重命名 mysql 目录为 mysql-8
cd /usr/local/soft
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql-8
11.1.2.2 创建 data 目录

/usr/local/soft/mysql-8 目录下创建一个 data 文件夹,用于存放数据库文件。

mkdir /usr/local/soft/mysql-8/data
11.1.2.3 创建 tmp 目录

/usr/local/soft/mysql-8 目录下创建一个 tmp 文件夹,用于存放 mysql.sock 文件。

mkdir /usr/local/soft/mysql-8/tmp
11.1.2.4 创建 my.cnf 配置文件

/usr/local/soft/mysql-8 目录下创建 my.cnf 文件,用于配置数据库。

vi /usr/local/soft/mysql-8/my.cnf

添加下面的文本并保存

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/soft/mysql-8
datadir=/usr/local/soft/mysql-8/data
socket=/usr/local/soft/mysql-8/tmp/mysql.sock
log-error=/usr/local/soft/mysql-8/data/mysql.err
pid-file=/usr/local/soft/mysql-8/data/mysql.pid
# character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
11.1.2.5 创建普通用户 mysql 并授权

由于 CentOS7 不能通过 root 用户启动 MySQL,所以我们需要创建一个普通用户用于 MySQL 的安装和启动(用户名任意,这里是 mysql),还需要把 /usr/local/soft/mysql-8 目录的所有访问权限赋予 mysql 用户。

# 创建普通用户 mysql
useradd mysql
# 授权
chown -R mysql:mysql /usr/local/soft/mysql-8
11.1.2.6 创建并初始化数据库

切换到 /usr/local/soft/mysql-8/bin 目录,完成数据库的创建和初始化工作。

# 切换到 /usr/local/soft/mysql-8/bin 目录
cd /usr/local/soft/mysql-8/bin
# 创建并初始化数据库
./mysqld --defaults-file=/usr/local/soft/mysql-8/my.cnf --basedir=/usr/local/soft/mysql-8/ --datadir=/usr/local/soft/mysql-8/data/ --user=mysql --initialize

通过 cat /usr/local/soft/mysql-8/data/mysql.err 命令查看数据库初始密码,如下:
查看数据库初始密码

11.1.3 配置 MySQL 系统服务并设置开机自启动

/etc/init.d 目录下创建一个文件,文件名为 mysql。通过 vi 编辑器打开 /etc/init.d/mysql 文件,把下面的文本写入文件,并保存退出(也通过 FileZillaFTP 客户端工具把该文件传输到 CentOS7 主机)

#!/bin/sh
# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
# This file is public domain and comes with NO WARRANTY of any kind

# MySQL daemon start/stop script.

# Usually this is put in /etc/init.d (at least on machines SYSV R4 based
# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.
# When this is done the mysql server will be started when the machine is
# started and shut down when the systems goes down.

# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: A very fast and reliable SQL database engine.

# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $local_fs $network $remote_fs
# Should-Start: ypbind nscd ldap ntpd xntpd
# Required-Stop: $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop MySQL
# Description: MySQL is a very fast and reliable SQL database engine.
### END INIT INFO
 
# If you install MySQL on some other places than /usr/local/mysql, then you
# have to do one of the following things for this script to work:
#
# - Run this script from within the MySQL installation directory
# - Create a /etc/my.cnf file with the following information:
#   [mysqld]
#   basedir=<path-to-mysql-installation-directory>
# - Add the above to any other configuration file (for example ~/.my.ini)
#   and copy my_print_defaults to /usr/bin
# - Add the path to the mysql-installation-directory to the basedir variable
#   below.
#
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir=/usr/local/soft/mysql-8
datadir=/usr/local/soft/mysql-8/data
config_file='/usr/local/soft/mysql-8/my.cnf'

# Default value, in seconds, afterwhich the script should timeout waiting
# for server start. 
# Value here is overriden by value in my.cnf. 
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900

# Lock directory for RedHat / SuSE.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"

# The following variables are only set for letting mysql.server find things.

# Set some defaults
mysqld_pid_file_path=/usr/local/soft/mysql-8/data
if test -z "$basedir"
then
  basedir=/usr/local/mysql
  bindir=/usr/local/mysql/bin
  if test -z "$datadir"
  then
    datadir=/usr/local/mysql/data
  fi
  sbindir=/usr/local/mysql/bin
  libexecdir=/usr/local/mysql/bin
else
  bindir="$basedir/bin"
  if test -z "$datadir"
  then
    datadir="$basedir/data"
  fi
  sbindir="$basedir/sbin"
  libexecdir="$basedir/libexec"
fi

# datadir_set is used to determine if datadir was set (and so should be
# *not* set inside of the --basedir= handler.)
datadir_set=

#
# Use LSB init script functions for printing messages, if possible
#
lsb_functions="/lib/lsb/init-functions"
if test -f $lsb_functions ; then
  . $lsb_functions
else
  log_success_msg()
  {
    echo " SUCCESS! $@"
  }
  log_failure_msg()
  {
    echo " ERROR! $@"
  }
fi

PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"
export PATH

mode=$1    # start or stop
server=$2  # default my, config file name not suffix, default suffix ".cnf"

[ $# -ge 2 ] && shift && shift
[ $# -ge 1 ] && shift


other_args="$*"   # uncommon, but needed when called from an RPM upgrade action
           # Expected: "--skip-networking --skip-grant-tables"
           # They are not checked here, intentionally, as it is the resposibility
           # of the "spec" file author to give correct arguments only.

case `echo "testing\c"`,`echo -n testing` in
    *c*,-n*) echo_n=   echo_c=     ;;
    *c*,*)   echo_n=-n echo_c=     ;;
    *)       echo_n=   echo_c='\c' ;;
esac

parse_server_arguments() {
  for arg do
    case "$arg" in
      --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
                    bindir="$basedir/bin"
		    if test -z "$datadir_set"; then
		      datadir="$basedir/data"
		    fi
		    sbindir="$basedir/sbin"
		    libexecdir="$basedir/libexec"
        ;;
      --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
		    datadir_set=1
	;;
      --pid-file=*) mysqld_pid_file_path=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
      --service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
    esac
  done
}

wait_for_pid () {
  verb="$1"           # created | removed
  pid="$2"            # process ID of the program operating on the pid-file
  pid_file_path="$3" # path to the PID file.

  i=0
  avoid_race_condition="by checking again"

  while test $i -ne $service_startup_timeout ; do

    case "$verb" in
      'created')
        # wait for a PID-file to pop into existence.
        test -s "$pid_file_path" && i='' && break
        ;;
      'removed')
        # wait for this PID-file to disappear
        test ! -s "$pid_file_path" && i='' && break
        ;;
      *)
        echo "wait_for_pid () usage: wait_for_pid created|removed pid pid_file_path"
        exit 1
        ;;
    esac

    # if server isn't running, then pid-file will never be updated
    if test -n "$pid"; then
      if kill -0 "$pid" 2>/dev/null; then
        :  # the server still runs
      else
        # The server may have exited between the last pid-file check and now.  
        if test -n "$avoid_race_condition"; then
          avoid_race_condition=""
          continue  # Check again.
        fi

        # there's nothing that will affect the file.
        log_failure_msg "The server quit without updating PID file ($pid_file_path)."
        return 1  # not waiting any more.
      fi
    fi

    echo $echo_n ".$echo_c"
    i=`expr $i + 1`
    sleep 1

  done

  if test -z "$i" ; then
    log_success_msg
    return 0
  else
    log_failure_msg
    return 1
  fi
}

get_cnf_file() {
    cfg_name=$1
    if [ -n $cfg_name ];then
        cfg_file="/etc/$cfg_name.cnf"
        cfg_file2="/etc/$cfg_name.cfg"
        cfg_file3="$basedir/$cfg_name.cnf"
        cfg_file4="$basedir/$cfg_name.cfg"
        cfg_file5="$basedir/etc/$cfg_name.cnf"
        cfg_file6="$basedir/etc/$cfg_name.cfg"
        if [ -f $cfg_file ];then
            config_file=$cfg_file
        elif [ -f $cfg_file2 ];then
            config_file=$cfg_file2
        elif [ -f $cfg_file3 ];then
            config_file=$cfg_file3
        elif [ -f $cfg_file4 ];then
            config_file=$cfg_file4
        elif [ -f $cfg_file5 ];then
            config_file=$cfg_file5
        elif [ -f $cfg_file6 ];then
            config_file=$cfg_file6
        fi
    fi
}

# Get arguments from the my.cnf file,
# the only group, which is read from now on is [mysqld]
if test -x "$bindir/my_print_defaults";  then
  print_defaults="$bindir/my_print_defaults"
else
  # Try to find basedir in /etc/my.cnf
  conf=/etc/my.cnf
  print_defaults=
  if test -r $conf
  then
    subpat='^[^=]*basedir[^=]*=\(.*\)$'
    dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
    for d in $dirs
    do
      d=`echo $d | sed -e 's/[ 	]//g'`
      if test -x "$d/bin/my_print_defaults"
      then
        print_defaults="$d/bin/my_print_defaults"
        break
      fi
    done
  fi

  # Hope it's in the PATH ... but I doubt it
  test -z "$print_defaults" && print_defaults="my_print_defaults"
fi

#
# Read defaults file from 'basedir'.   If there is no defaults file there
# check if it's in the old (depricated) place (datadir) and read it from there
#

extra_args=""
if test -r "$basedir/my.cnf"
then
  extra_args="-e $basedir/my.cnf"
fi

if [ -n $server ]
then
    get_cnf_file $server
    extra_args="-c $config_file"
    lock_file_path="$lockdir/$server"
fi

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

#
# Set pid file if not given
#
if test -z "$mysqld_pid_file_path"
then
  mysqld_pid_file_path=$datadir/`hostname`.pid
else
  case "$mysqld_pid_file_path" in
    /* ) ;;
    * )  mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;
  esac
fi

case "$mode" in
  'start')
    # Start daemon

    # Safeguard (relative paths, core dumps..)
    cd $basedir

    echo $echo_n "Starting MySQL"
    if test -x $bindir/mysqld_safe
    then
      # Give extra arguments to mysqld with the my.cnf file. This script
      # may be overwritten at next upgrade.
      if [ -n $server ];then
      $bindir/mysqld_safe --defaults-file="$config_file" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
      else
      $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
      fi
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?

      # Make lock for RedHat / SuSE
      if test -w "$lockdir"
      then
        touch "$lock_file_path"
      fi

      exit $return_value
    else
      log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
    fi
    ;;

  'stop')
    # Stop daemon. We use a signal here to avoid having to know the
    # root password.

    if test -s "$mysqld_pid_file_path"
    then
      # signal mysqld_safe that it needs to stop
      touch "$mysqld_pid_file_path.shutdown"

      mysqld_pid=`cat "$mysqld_pid_file_path"`

      if (kill -0 $mysqld_pid 2>/dev/null)
      then
        echo $echo_n "Shutting down MySQL"
        kill $mysqld_pid
        # mysqld should remove the pid file when it exits, so wait for it.
        wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?
      else
        log_failure_msg "MySQL server process #$mysqld_pid is not running!"
        rm "$mysqld_pid_file_path"
      fi

      # Delete lock for RedHat / SuSE
      if test -f "$lock_file_path"
      then
        rm -f "$lock_file_path"
      fi
      exit $return_value
    else
      log_failure_msg "MySQL server PID file could not be found!"
    fi
    ;;

  'restart')
    # Stop the service and regardless of whether it was
    # running or not, start it again.
    if $0 stop  $other_args; then
      $0 start $other_args
    else
      log_failure_msg "Failed to stop running server, so refusing to try to start."
      exit 1
    fi
    ;;

  'reload'|'force-reload')
    if test -s "$mysqld_pid_file_path" ; then
      read mysqld_pid <  "$mysqld_pid_file_path"
      kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
      touch "$mysqld_pid_file_path"
    else
      log_failure_msg "MySQL PID file could not be found!"
      exit 1
    fi
    ;;
  'status')
    # First, check to see if pid file exists
    if test -s "$mysqld_pid_file_path" ; then 
      read mysqld_pid < "$mysqld_pid_file_path"
      if kill -0 $mysqld_pid 2>/dev/null ; then 
        log_success_msg "MySQL running ($mysqld_pid)"
        exit 0
      else
        log_failure_msg "MySQL is not running, but PID file exists"
        exit 1
      fi
    else
      # Try to find appropriate mysqld process
      mysqld_pid=`pidof $libexecdir/mysqld`

      # test if multiple pids exist
      pid_count=`echo $mysqld_pid | wc -w`
      if test $pid_count -gt 1 ; then
        log_failure_msg "Multiple MySQL running but PID file could not be found ($mysqld_pid)"
        exit 5
      elif test -z $mysqld_pid ; then 
        if test -f "$lock_file_path" ; then 
          log_failure_msg "MySQL is not running, but lock file ($lock_file_path) exists"
          exit 2
        fi 
        log_failure_msg "MySQL is not running"
        exit 3
      else
        log_failure_msg "MySQL is running but PID file could not be found"
        exit 4
      fi
    fi
    ;;
    *)
      # usage
      basename=`basename "$0"`
      echo "Usage: $basename  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]"
      exit 1
    ;;
esac

exit 0

文本中有 4 个配置可以自行进行更改,即
在这里插入图片描述
文本保存之后,执行以下命令给 root 用户赋予该文件的执行权限。

chmod +x /etc/init.d/mysql

至此,MySQL 的系统服务已配置完成。

执行以下命令,设置 MySQL 服务开机自启动

chkconfig --add mysql

11.1.4 启动数据库

执行以下命令,完成 MySQL 数据库的启动

service mysql start

启动 MySQL

11.1.5 配置支持 MySQL 命令

现在要执行 MySQL 命令,需要切换到安装目录的 bin 文件夹下执行。运行以下命令,配置可以在任意目录下执行 MySQL 命令:

ln -s /usr/local/soft/mysql-8/bin/mysql /usr/bin

11.1.6 更改 root 用户默认密码

执行以下命令,并填写前面生成的随机密码,登录 MySQL 服务器,如下:

mysql -uroot -h 127.0.0.1 -p

更改 root 用户密码

alter user 'root'@'localhost' identified by '123456';
flush privileges;

更改 root 用户密码

11.1.7 配置支持远程登录

同样需要登录 MySQL 服务器,并执行以下命令配置支持远程登录,即:

use mysql
# % 表示允许所有 IP 远程访问
update user set host = '%' where user = 'root';
flush privileges;

配置支持远程登录
如遇远程无法连接,请检查主机防火墙,如下:

# 检查防火墙状态
systemctl status firewalld
# 设置开机启用防火墙
systemctl enable firewalld.service
# 设置开机禁用防火墙
systemctl disable firewalld.service
# 启动防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld

开启防火墙后,添加某一特定端口的 TCP 访问,如下:

# 添加 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload

# 移除 3306 端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload

在这里插入图片描述

11.1.8 常用命令

# 启动 MySQL 数据库
service mysql start
# 重启 MySQL 数据库
service mysql restart
# 关闭 MySQL 数据库
service mysql stop

11.2 基于 Windows 的 MySQL 安装

11.2.1 安装前的准备

MySQL 8.x 为例,这里提供免安装文件。
百度网盘(提取码:5354)
天翼云盘(访问码:4zea)

11.2.2 安装 MySQL

11.2.2.1 创建 my.ini 文件

MySQL 安装目录下新建一个 my.ini 文件,用于配置数据库。文件内容如下:

[mysqld]
basedir="D:\\dev\\mysql"
datadir="D:\\dev\\mysql\\data"
port=3306
server_id=10
character-set-server=gbk
character_set_filesystem=gbk
[client]
port=3306
default-character-set=gbk
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8

注意:这里有 data 目录的创建,但万万不可手动在 MySQL 安装目录下创建 data 空目录,否则报错。

11.2.2.2 配置环境变量

这里提供一个 MySQL 环境变量配置的批处理文件,把下面的文本保存为 vbs 格式的文件(文件名任意)。

on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("MYSQL_HOME")="D:\dev\mysql" ' 这里需要修改为 MySQL 的安装目录
sysenv("Path")="%MYSQL_HOME%\bin;"+sysenv("Path")

wscript.echo "MySQL environment variable configuration succeeded"

使用时双击保存的文件,看到下面的提示框,说明 MySQL 环境变量已配置完成。
在这里插入图片描述

11.2.2.3 注册本地 Windows MySQL 服务

注册本地 Windows MySQL 服务后,可以设置开机自启动。

管理员身份 打开 cmd 命令窗口,执行以下命令

mysqld --install

如果执行上面的命令出现错误,先执行 sc delete MySQL 删除服务,再次输入上面的命令即可。
在这里插入图片描述

11.2.2.4 安装 MySQL

管理员身份 打开 cmd 命令窗口,执行以下命令。

mysqld --initialize --user=root --console

在这里插入图片描述
注:图中红框圈起来的是初始随机密码。

通过 net start mysql 命令启动 MySQL 服务,如下:
在这里插入图片描述

11.2.3 更改 root 用户默认密码

管理员身份 打开 cmd 命令窗口,执行以下命令,并填写前面生成的初始随机密码,登录 MySQL 服务器,如下:

mysql -u root -p

在这里插入图片描述

更改 root 用户密码

alter user 'root'@'localhost' identified by '123456';
flush privileges;

在这里插入图片描述

11.2.4 配置支持远程登录

同样需要登录 MySQL 服务器,并执行以下命令配置支持远程登录,即:

use mysql
# % 表示允许所有 IP 远程访问
update user set host = '%' where user = 'root';
flush privileges;

在这里插入图片描述
如遇远程无法连接,请检查主机防火墙。Windows 中开启防火墙允许访问某一特定端口配置
在这里插入图片描述

11.2.5 常用命令

# 开启服务
net start mysql
# 关闭服务
net stop mysql

12. 基于 Windows 的 Git 服务器搭建

转载自 Windows平台下搭建自己的Git服务器
在这里插入图片描述
在这里插入图片描述

installService.cmd

@REM Install Gitblit as a Windows service.

@REM gitblitw.exe (prunmgr.exe) is a GUI application for monitoring 
@REM and configuring the Gitblit procrun service.
@REM
@REM By default this tool launches the service properties dialog
@REM but it also has some other very useful functionality.
@REM
@REM http://commons.apache.org/daemon/procrun.html

@SETLOCAL

@REM arch = x86, amd64, or ia32
SET ARCH=amd64
SET gbhome=D:\dev\gitblit-1.9.2

@REM SET gbhome=%~dp0
@REM SET gbhome=%gbhome:~0,-1%

@REM Be careful not to introduce trailing whitespace after the ^ characters.
@REM Use ; or # to separate values in the --StartParams parameter.
"%gbhome%\%ARCH%\gitblit.exe"  //IS//gitblit ^
		 --DisplayName="gitblit" ^
		 --Description="a pure Java Git solution" ^
		 --Startup=auto ^
		 --LogPath="%gbhome%\logs" ^
		 --LogLevel=INFO ^
		 --LogPrefix=gitblit ^
		 --StdOutput=auto ^
		 --StdError=auto ^
		 --StartPath="%gbhome%" ^
		 --StartClass=com.gitblit.GitBlitServer ^
		 --StartMethod=main ^
		 --StartParams="" ^
		 --StartMode=jvm ^
		 --StopPath="%gbhome%" ^
		 --StopClass=com.gitblit.GitBlitServer ^
		 --StopMethod=main ^
		 --StopParams="--stop;--baseFolder;%gbhome%\data" ^
		 --StopMode=jvm ^
		 --Classpath="%gbhome%\gitblit.jar;%gbhome%\ext\*" ^
		 --Jvm=auto ^
		 --JvmMx=1024

@ENDLOCAL

说明:Git 服务器安装完成后有默认的用户名/密码,即 admin/admin
说明:Git 服务器安装完成后有默认的用户名/密码,即 admin/admin
说明:Git 服务器安装完成后有默认的用户名/密码,即 admin/admin

12.1 遇到的问题

本次安装遇到了 gitblit 服务无法启动问题,解决方法见 windows server 2016系统下gitblit安装过程[error] Failed creating java错误解决
在这里插入图片描述

在这里插入图片描述

13. 基于 Windows 的 SVN 服务器搭建

转载自 VisualSVN Serverv4.1.0 安装

这里提供安装需要的文件。
百度网盘(提取码:5354)
天翼云盘(访问码:6sc0)

在这里插入图片描述

14. IDEA

转载自 配置IntelliJ IDEA免安装环境,win7,win10
在这里插入图片描述
在这里插入图片描述

15. VSCode

转载自 免安装版VSCode配置(便携模式)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值