Oracle | Cloud Applications and Cloud Platform
双击下载的 exe,如 jdk-8u131-windows-x64.exe。
进入安装向导
更改为 D:\developer_tools\Java\jdk1.8.0_131
点击确定
下一步,开始安装
安装 jre,可以更改 jre 安装路径。(过程同上述安装目录的选择) 注意:如果提示需要将 jre 安装在一个空目录下,那自己创建一个目录即可
使用XTFP工具将jdk的二进制发布包上传到Linux
解压安装包
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
解压完毕
配置环境变量,使用vim命令修改 /etc/profile
文件,在文件末尾加入如下配置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
重新加载profile文件,使更改的配置立即生效,命令为
source /etc/profile
检查安装是否成功,命令为
java -version
Windows 版的 Elasticsearch 的安装很简单,解压即安装完毕,解压后的 Elasticsearch 的目录结构如下
解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务
注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 http
议 协议 RESTful 端口。
打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果
Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配置使用自带的 JDK,一般建议使用系统配置的 JDK
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options
配置文件
# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 1G
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
软件下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
#解压缩到 /opt/es目录下
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt
# 改名
mv elasticsearch-7.8.0 es
因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户
useradd es #新增 es 用户
passwd es #为 es 用户设置密码
userdel -r es #如果错了,可以删除再加
chown -R es:es /opt/module/es #文件夹所有者
修改 /opt/es/config/elasticsearch.yml
文件
# 加入如下配置
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
修改/etc/security/limits.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
修改/etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
修改/etc/sysctl.conf
# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
重新加载
sysctl -p
使用 ES 用户启动
cd /opt/es/
#启动
bin/elasticsearch
#后台启动
bin/elasticsearch -d
启动时,会动态生成文件,如果文件所属用户不匹配,会发生错误,需要重新进行修改用户和用户组
关闭防火墙
#暂时关闭防火墙
systemctl stop firewalld
#永久关闭防火墙
systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原
es文件一览
报错解决
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000080000000, 2147483648, 0) failed; error=‘Not enough space’ (errno=12)
# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 1G
# Xmx represents the maximum size of total heap space
-Xms256m
-Xms256m
在浏览器输入https://Ip:9200 测试是否成功
下载地址:Redis
安装C语言的编译环境
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
测试 gcc版本
gcc --version
解压缩
tar -zxvf redis-6.2.1.tar.gz
进入目录 执行make命令
cd redis-6.2.1
make
如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
执行命令解决
make distclean
在redis-6.2.1目录下再次执行make命令(只是编译好)
跳过make test 继续执行: make install
安装目录/usr/local/bin
查看默认安装目录:
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口
前台启动,命令行窗口不能关闭,否则服务器停止
备份redis.conf
拷贝一份redis.conf到其他目录
cp /opt/redis-3.2.5/redis.conf /myredis
后台启动设置daemonize no改成yes
修改redis.conf(128行)文件将里面的daemonize no
改成 yes
,让服务在后台启动
启动Redis
redis-server /myredis/redis.conf
用客户端访问:redis-cli
Redis关闭
单实例关闭
redis-cli shutdown
想要远程连接,修改配置文件
yes改为no
可视化工具连接
修改配置文件
注释掉bind 127.0.0.1
重启服务
测试连接
成功!
首页:
Maven – Welcome to Apache Maven(opens new window)
下载页面:
核心程序压缩包:apache-maven-3.8.6-bin,解压到非中文、没有空格的目录。例如:
在解压目录中,我们需要着重关注 Maven 的核心配置文件:conf/settings.xml
本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在 C 盘,也就是系统盘。将来 Maven 仓库中 jar 包越来越多,仓库体积越来越大,可能会拖慢 C 盘运行速度,影响系统性能。所以建议将 Maven 的本地仓库放在其他盘符下。配置方式如下
<localRepository>D:\Develop\maven\maven-repositorylocalRepository>
本地仓库这个目录,我们手动创建一个空的目录即可。
记住:一定要把 localRepository 标签从注释中拿出来。
注意:本地仓库本身也需要使用一个非中文、没有空格的目录。
Maven 下载 jar 包默认访问境外的中央仓库,而国外网站速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让 Maven 下载 jar 包的时候速度更快。配置的方式是:
将下面 mirror 标签整体复制到 settings.xml 文件的 mirrors 标签的内部。
<mirror>
<id>nexus-aliyunid>
<mirrorOf>centralmirrorOf>
<name>Nexus aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
如果按照默认配置运行,Java 工程使用的默认 JDK 版本是 1.5,而我们熟悉和常用的是 JDK 1.8 版本。修改配置的方式是:将 profile 标签整个复制到 settings.xml 文件的 profiles 标签内。
<profile>
<id>jdk-1.8id>
<activation>
<activeByDefault>trueactiveByDefault>
<jdk>1.8jdk>
activation>
<properties>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
<maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
properties>
profile>
用下面指令验证
C:\Users\Administrator>echo %JAVA_HOME%
D:\software\Java
C:\Users\Administrator>java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
TIP
配置环境变量的规律:
XXX_HOME 通常指向的是 bin 目录的上一级
PATH 指向的是 bin 目录
C:\Users\Administrator>mvn -v Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: D:\Develop\maven\apache-maven-3.6.1\bin\..
Java version: 11, vendor: Oracle Corporation, runtime: D:\Develop\jdk\jdk11
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
打开IDEA的Settings页面,更换MAVEN地址,更换重启即可,如果自动更换仓库地址,选择Settings for new Project
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
修改配置文件,加入如下内容
vim /etc/profile
# maven配置
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PAT
source /etc/profile
mvn -version
# 修改配置内容如下
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/repo</localRepository>
安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
或者通过wget
下载Nginx安装包
wget https://nginx.org/download/nginx-1.16.1.tar.gz
解压
tar -zxvf nginx-1.16.1.tar.gz
安装
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
执行 ./configure报错
安装依赖包
yum -y install pcre-devel openssl openssl-devel
安装成功
make && make install
检查版本
cd /usr/local/nginx/sbin/
./nginx -v
./nginx -t
出现如下,即为正确
启动Nginx
./nginx
开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
访问成功
停止服务
./nginx -s stop
查看进程
ps -ef | grep nginx
重置配置文件
./nginx -s reload
配置全局命令
vim /etc/profile
source /etc/profile
配置成功
安装环境:Win10 64位
软件版本:MySQL 5.7.24 解压版
https://downloads.mysql.com/archives/community/
点开上面的链接就能看到如下界面:
选择选择和自己系统位数相对应的版本点击右边的Download
,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:
不用理会上面的登录和注册按钮,直接点击 No thanks, just start my download.
就可以下载。
下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置。
如果你想卸载MySQL,也很简单。
右键开始菜单,选择命令提示符(管理员)
,打开黑框。
net stop mysql
,回车。net stop mysql
mysqld -remove mysql
,回车。mysqld -remove mysql
至此,MySQL卸载完成!
环境变量里面有很多选项,这里我们只用到
Path
这个参数。为什么在初始化的开始要添加环境变量呢?
在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path
所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。
右键此电脑
→属性
,点击高级系统设置
点击环境变量
在系统变量
中新建MYSQL_HOME
在系统变量
中找到并双击Path
点击新建
最后点击确定。
如何验证是否添加成功?
右键开始菜单(就是屏幕左下角),选择命令提示符(管理员)
,打开黑框,敲入mysql
,回车。
如果提示Can't connect to MySQL server on 'localhost'
则证明添加成功;
如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件
则表示添加添加失败,请重新检查步骤并重试。
新建一个文本文件,内容如下:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
把上面的文本文件另存为,在保存类型里选所有文件 (*.*)
,文件名叫my.ini
,存放的路径为MySQL的根目录
(例如我的是D:\software\mysql-5.7.24-winx64
,根据自己的MySQL目录位置修改)。
上面代码意思就是配置数据库的默认编码集为utf-8和默认存储引擎为INNODB。
在刚才的黑框中敲入mysqld --initialize-insecure
,回车,稍微等待一会,如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。
mysqld --initialize-insecure
tips:如果出现如下错误
是由于权限不足导致的,去C:\Windows\System32
下以管理员方式运行 cmd.exe
在黑框里敲入mysqld -install
,回车。
mysqld -install
现在你的计算机上已经安装好了MySQL服务了。
MySQL服务器
在黑框里敲入net start mysql
,回车。
net start mysql // 启动mysql服务
net stop mysql // 停止mysql服务
在黑框里敲入mysqladmin -u root password 1234
,这里的1234
就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。
mysqladmin -u root password 1234
至此,MySQL 5.7 解压版安装完毕!
右键开始菜单,选择命令提示符
,打开黑框。
在黑框中输入,mysql -uroot -p1234
,回车,出现下图且左下角为mysql>
,则登录成功。
mysql -uroot -p1234
到这里你就可以开始你的MySQL之旅了!
登陆参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
退出mysql:
exit
quit
如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service:
systemctl status mysqld.service
如果存在mysql-libs的旧版本包,显示如下:
如果不存在mysql-lib的版本,显示如下:
systemctl stop mysqld.service
rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留
find / -name mysql
rm -rf xxx
rm -rf /etc/my.cnf
首先上传4个文件到根目录下的opt目录
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执 行 :
chmod -R 777 /tmp
rpm -qa|grep libaio
rpm -qa|grep net-tools
在mysql的安装文件目录下执行:(必须按照顺序执行)
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
注意: 如在检查工作时,没有检查mysql依赖环境在安装mysql-community-server会报错
rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的 文件形式,易于安装。
-i
, --install 安装软件包
-v
, --verbose 提供更多的详细信息输出
-h
, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条
安装过程中可能的报错信息:
一个命令:yum remove mysql-libs 解决,清除之前安装过的依赖即可
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息
mysql --version
#或
mysqladmin --version
执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。
rpm -qa|grep -i mysql
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执 行下面的命令初始化:
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。
查看密码:
cat /var/log/mysqld.log
root@localhost: 后面就是初始化的密码
#加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个 服务器进程。
查看进程:
ps -ef | grep -i mysql
systemctl list-unit-files|grep mysqld.service
systemctl enable mysqld.service
systemctl disable mysqld.service
通过 mysql -hlocalhost -P3306 -uroot -p
进行登录,在Enter password:录入初始化密码
因为初始化密码默认是过期的,所以查看数据库会报错 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
改为更复杂的密码规则之后,设置成功,可以正常使用数据库了
在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远 程连接引起的。
1.在远程机器上使用ping ip地址保证网络畅通
2.在远程机器上使用telnet命令保证端口号开放访问
telnet ip地址 端口号
拓展: telnet命令开启 :
systemctl start firewalld.service
systemctl status firewalld.service
systemctl stop firewalld.service
#设置开机启用防火墙
systemctl enable firewalld.service
#设置开机禁用防火墙
systemctl disable firewalld.service
firewall-cmd --list-all
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
在Linux系统MySQL下测试:
use mysql;
select Host,User from user;
可以看到root用户的当前主机配置信息为localhost。
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只 能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 % 是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连 接。如果 Host=% ,表示所有IP都有连接权限。 注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产 环境的IP进行设置。
update user set host = '%' where user ='root';
Host设置了“%”后便可以允许远程访问。
Host修改完成后记得执行flush privileges使配置立即生效:
flush privileges;
测试连接成功
解压缩包指定路径
编辑系统变量
新建环境变量
输入命令查看是否安装成功
node -v
npm -v
设置npm全局模块目录和缓存目录
C:\Users\Administrator>npm config set prefix "D:\Develop\Node\npm"
C:\Users\Administrator>npm config set cache "D:\Develop\Node\npm_cache"
更改为淘宝的镜像源
npm config set registry https://registry.npm.taobao.org
可用 “ npm config ls
” 命令查看上述配置。
解压缩包到指定路径
设置环境变量
管理员身份双击启动tomcat
启动成功,失败命令行窗口会一闪而过
乱码解决
由原来的UTF-8
修改为GBK
测试成功
使用XTFP工具将tomcat的二进制发布包上传到Linux
解压安装包,命令为
tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
解压完成
进入Tomcat的bin
目录启动服务,命令
sh startup.sh
或者
./startup.sh
验证Tomcat启动是否成功
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
ps -ef | grep tomcat
防火墙操作
firewall-cmd --state
或者
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl start firewalld
netstat -anp
firewall-cmd --query-port=666/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
开放8080端口,并访问
开发阶段采用单机安装即可。
在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:
GitHub主页:https://github.com/alibaba/nacos
GitHub的Release下载页:https://github.com/alibaba/nacos/releases
如图:
windows版本使用nacos-server-1.4.1.zip
包即可。
将这个包解压到任意非中文目录下,如图:
目录说明:
Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。
如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:
修改其中的内容:
启动非常简单,进入bin目录,结构如下:
然后执行命令即可:
windows命令:
startup.cmd -m standalone
执行后的效果如图:
在浏览器输入地址:http://127.0.0.1:8848/nacos即可:
默认的账号和密码都是nacos,进入后:
Linux或者Mac安装方式与Windows类似。
Nacos依赖于JDK运行,索引Linux上也需要安装JDK才行。
上传jdk安装包:
上传到某个目录,例如:/usr/local/
然后解压缩:
tar -xvf jdk-8u144-linux-x64.tar.gz
然后重命名为java
配置环境变量:
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
设置环境变量:
source /etc/profile
如图:
上传到Linux服务器的某个目录,例如/usr/local/src
目录下:
命令解压缩安装包:
tar -xvf nacos-server-1.4.1.tar.gz
然后删除安装包:
rm -rf nacos-server-1.4.1.tar.gz
目录中最终样式:
目录内部:
与windows中类似
在nacos/bin目录中,输入命令启动Nacos:
sh startup.sh -m standalone
父工程:
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.2.5.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
客户端:
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
官方给出的Nacos集群图:
其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。
我们计划的集群结构:
三个nacos节点的地址:
节点 | ip | port |
---|---|---|
nacos1 | 192.168.150.1 | 8845 |
nacos2 | 192.168.150.1 | 8846 |
nacos3 | 192.168.150.1 | 8847 |
搭建集群的基本步骤:
Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。
官方推荐的最佳实践是使用带有主从的高可用数据库集群,主从模式的高可用数据库可以参考传智教育的后续高手课程。
这里我们以单点的数据库为例来讲解。
首先新建一个数据库,命名为nacos,而后导入下面的SQL:
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL,
`c_use` varchar(64) DEFAULT NULL,
`effect` varchar(64) DEFAULT NULL,
`type` varchar(64) DEFAULT NULL,
`c_schema` text,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_aggr */
/******************************************/
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_beta */
/******************************************/
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_tag */
/******************************************/
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_tags_relation */
/******************************************/
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = group_capacity */
/******************************************/
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = his_config_info */
/******************************************/
CREATE TABLE `his_config_info` (
`id` bigint(64) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`src_user` text,
`src_ip` varchar(50) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = tenant_capacity */
/******************************************/
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL,
`resource` varchar(255) NOT NULL,
`action` varchar(8) NOT NULL,
UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
nacos在GitHub上有下载地址:https://github.com/alibaba/nacos/tags,可以选择任意版本下载。
本例中才用1.4.1版本:
将这个包解压到任意非中文目录下,如图:
目录说明:
进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf:
然后添加内容:
127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847
然后修改application.properties文件,添加数据库配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123
将nacos文件夹复制三份,分别命名为:nacos1、nacos2、nacos3
然后分别修改三个文件夹中的application.properties,
nacos1:
server.port=8845
nacos2:
server.port=8846
nacos3:
server.port=8847
然后分别启动三个nacos节点:
startup.cmd
提供的nginx安装包:
解压到任意非中文目录下:
修改conf/nginx.conf文件,配置如下:
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
server {
listen 80;
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
而后在浏览器访问:http://localhost/nacos即可。
代码中application.yml文件配置如下:
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址
实际部署时,需要给做反向代理的nginx服务器设置一个域名,这样后续如果有服务器迁移nacos的客户端也无需更改配置.
Nacos的各个节点应该部署到多个不同服务器,做好容灾和隔离
https://www.jenkins.io/zh/doc/book/installing/
https://pkg.jenkins.io/redhat-stable/
要在CentOS 7上安装Jenkins,您可以按照以下步骤进行操作:
sudo yum update
sudo yum install fontconfig java-11-openjdk
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key --no-check-certificate
sudo yum install jenkins
sudo systemctl start jenkins && sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
现在,您可以通过在Web浏览器中输入http://your_server_ip:8080
来访问Jenkins的Web界面,并按照屏幕上的指示完成Jenkins的安装设置。
请注意,安装Jenkins可能需要一些时间,具体取决于您的互联网连接速度和系统配置。
查看密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
修改启动端口
vim /etc/sysconfig/jenkins
# 修改为
JENKINS_PORT="9000"
vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=9000"
前端一并修改
重启服务和加载
sudo systemctl restart jenkins && sudo systemctl daemon-reload
sudo systemctl stop jenkins
sudo systemctl disable jenkins
sudo yum remove jenkins
sudo rm -rf /var/lib/jenkins
sudo rm -rf /var/cache/jenkins
sudo rm -rf /var/log/jenkins
请注意,这些命令将删除Jenkins的配置和数据文件,包括所有的作业和构建历史。确保在执行这些命令之前备份任何重要的数据。
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
Unable to find image 'jenkinsci/blueocean:latest' locally
latest: Pulling from jenkinsci/blueocean
213ec9aee27d: Pull complete
9fb6b045bfc8: Pull complete
1a7d7223e42d: Pull complete
8f2b061b68da: Pull complete
bba48a821480: Pull complete
0061c72f26bd: Pull complete
f65ed3fbea93: Pull complete
3509f53c6b7b: Pull complete
28ea9c56d127: Pull complete
b3b3ea5ca7f4: Pull complete
e5ecc395b9e7: Pull complete
a4cea1bad4ff: Pull complete
d2d0e6e9298c: Pull complete
f786c314ed83: Pull complete
Digest: sha256:f27933313986f7fb0b5784aa6520ebddc455ce258cbf4d13a3e3cf9d4c94d992
Status: Downloaded newer image for jenkinsci/blueocean:latest
3f48f3cace6f56061dc2ba8d4d49a55e58d6c36a5dd40ac239a7715fa11f8883
启动起来,访问ip:8080
查看密码
[root@test jvm]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f48f3cace6f jenkinsci/blueocean "/sbin/tini -- /usr/…" 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp compassionate_torvalds
23b7595758f6 app:0.0.1 "/bin/sh -c 'java -j…" 3 days ago Up 3 days 0.0.0.0:8888->8888/tcp, :::8888->8888/tcp pedantic_curran
[root@test jvm]# docker exec -it 3f48f3cace6f /bin/bash
bash-5.1# cat /var/jenkins_home/secrets/initialAdminPassword
0e458fdef7d1402186537c3a66428c4a
账户为:admin
密码复制进去
安装成功
要在CentOS上安装Git,您可以按照以下步骤进行操作:
$ sudo yum update
$ sudo yum install git
$ git --version
git version 1.8.3.1
如果成功安装,将显示Git的版本信息。
要在CentOS 7上安装GitLab,您可以按照以下步骤进行操作:
sudo yum update
sudo yum install curl policycoreutils openssh-server openssh-clients postfix
sudo systemctl enable sshd
sudo systemctl start sshd
sudo systemctl enable postfix
sudo systemctl start postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://your-domain.com" yum install -y gitlab-jh
安装成功
除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password
文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure
自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root
登录。
[root@test secrets]# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: jIUVfxoJ8jdZaPLCQlMQnz0/3+M8xyRswjqOHX3uQBc=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
请将your-domain.com
替换为您的域名或IP地址。
/etc/gitlab/gitlab.rb
文件,根据您的需求进行配置。sudo gitlab-ctl reconfigure
安装成功
gitlab常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;
vi /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-ctl tail # 查看日志;
https://docs.gitlab.cn/jh/install/docker.html
安装所需最小配置
uname -r
命令可查看系统内核版本安装docker
更新yum源
yum update
安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
添加镜像
//国外镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//阿里镜像
https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker
systemctl start docker
systemctl enable docker
docker version
使用容器安装gitlab
1.添加容器
docker run --detach \
--hostname 192.168.18.128 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
2.启动容器
docker start gitlab
3.查看已存在的容器
docker ps -a
4.进入容器
docker exec -it gitlab /bin/bash
访问
http://192.168.44.101
当首次运行出现502错误的时候排查两个原因
管理员账号登录
用户名:root
密码存在下面文件中,登录后需要改密码不然24小时之后会失效
cat /etc/gitlab/initial_root_password