centos7.9java部署环境配置-从离线部署到放弃

404 阅读7分钟

刚开始安装jdk,redis,gcc等的时候用离线部署还能行,后面到部署mysqil的时候发现有很多包没现成的,依赖又有依赖,只能申请开通网络访问权限,所幸最后部署完成。

安装jdk

使用版本jdk1.8.0_431,官网下载地址 www.oracle.com/hk/java/tec… 选择名称jdk-8u431-linux-x64.tar.gz

上传到服务器,新建目录/usr/local/java

执行

tar -zxvf /${存放地址}/8u431-linux-x64.tar.gz -C /usr/local/java

配置java环境

www.cnblogs.com/hellojesson…

方式1. 编辑/etc/profile,全局环境变量,所有用户都生效 方式2. 编辑~/.bashrc,只作用于当前用户

我刚开始采用方式1,但是不生效,采用方式2可以,编辑的内容都是一样的。 具体操作 vi ~/.bashrc

export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

执行source ~/.bashrc使配置生效 然后执行java -version,如果返回java版本,说明jdk安装成功

java version "1.8.0_431"
Java(TM) SE Runtime Environment (build 1.8.0_431-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.431-b10, mixed mode)

安装gcc

gcc版本4.8.5
linux内核本身不依赖gcc,gcc只是一个编译软件,是在kernel的源码变成可执行文件的时候起作用,真正使用起来就没有什么关系。redis必须依赖gcc。 gcc有很多依赖包,一个一个查找下载很麻烦,这里提供一个下载好的文件夹打包下载

链接: pan.baidu.com/s/1Kvz0TNJ7… 提取码: 9qzb

下载后切换到文件夹目录下,执行

rpm -ivh *.rpm --nodeps --force

安装redis

redis版本6.2.6 下载地址download.redis.io/releases/ 下载名称redis-6.2.6.tar.gz 下载后上传到服务器

解压

tar -zxvf redis-6.2.6.tar.gz

解压后会在放tar.gz的文件夹内自动生成对应的redis-6.2.6文件夹,切换到这个文件夹内, 执行编译

make

如果报错jemalloc/jemalloc.h: No such file or directory。可以先清理上次编译残留文件,重新编译 即:

make distclean  && make

执行安装

make install PREFIX=/usr/local/redis

PREFIX用于指定安装目录,没有指定目录的话会在当前目录下安装,即/redis-6.2.6,我这里没有指定,所以我的安装目录是/redis-6.2.6。

配置redis

# 复制配置文件
cp /redis-6.2.6/redis.conf /etc/redis.conf
# 进入redis.conf所在文件夹
cd /etc
# 修改配置文件
vi redis.conf

1.修改默认密码:查找 requirepass, 默认密码为 foobared, 将 foobared 修改为你的密码即可,在redis查询数据需要密码。注释requirepass在redis查询数据不需要密码。 2.如果需要设置指定IP访问redis,修改 bind配置,例如设置为 127.0.0.1只允许本机访问,如果不限ip可以设置为0.0.0.0 3.如果需设置后台启动,找到 protected-mode设置为 yes(默认), 否则将其改为:protected-mode no 4.找到dir ./ 修改数据存储目录 5.找到logfile "" 修改日志路径,注意加"" 6.找到port 设置端口,一般是6379

修改完成后保存退出。

启动服务

/${redis安装目录}/src/redis-server /${redis配置目录}/redis.conf 按照我的安装配置目录,命令为:

/redis-6.2.6/src/redis-server /etc/redis.conf

有的redis-server指令是在安装目录的bin文件夹下,可以对照参考,以实际情况为准。

查看进程

ps -ef | grep redis

root      75028      1  0 15:19 ?        00:00:01 /redis-6.2.6/src/redis-server 127.0.0.1:6379
root      88382  47867  0 15:39 pts/1    00:00:00 grep --color=auto redis

客户端访问

# 连接客户端
/redis-6.2.6/src/redis-cli -h 127.0.0.1 -p 6379 -a "${password}"

输入info可以查看redis系统信息

127.0.0.1:6379> info
# Server
redis_version:6.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:ec173921a31cb2d9
redis_mode:standalone

关闭redis服务

/redis-6.2.6/src/redis-cli -a "${password}" shutdown

systemctl管理服务

#1.设置开启自动启动
cd /lib/systemd/system/
#2.新建文件
vim redis.service
#3.输入以下内容
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
# ExecStart需要按照实际情况修改成自己的地址
ExecStart=/redis-6.2.6/src/redis-server /etc/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

# 开机自动启动
systemctl enable redis.service
# 启动redis服务
systemctl start redis.service
# 查看服务状态
systemctl status redis.service
# 停止服务
systemctl stop redis.service
# 取消开机自动启动(卸载服务)
systemctl disabled redis.service

防火墙设置

如果不需要远程连接redis,不用设置防火墙的端口

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

[root@localhost ~]# firewall-cmd --list-ports
6000/tcp

把6379端口添加进去

firewall-cmd --zone=public --add-port=6379/tcp --permanent

# 重启firewall
firewall-cmd --reload
#查看已开放的端口(默认不开放任何端口)
firewall-cmd --list-ports
#查看想开的端口是否已开:
firewall-cmd --query-port=59304/tcp
#添加指定需要开放的端口:
firewall-cmd --zone=public(作用域) --add-port=59304/tcp(端口和访问类型) --permanent(永久生效)
firewall-cmd --zone=public --add-port=59304/tcp --permanent
#重载入添加的端口:重启防火墙
firewall-cmd --reload
#firewall-cmd --zone= public --remove-port=80/tcp --permanent
#移除指定端口(这里只是记录一下命令,开放成功的端口不需要执行移除操作):
firewall-cmd --permanent --remove-port=59304/tcp

# 检查防火墙状态 看到active(running)就意味着防火墙打开了
sudo systemctl status firewalld
# 关闭防火墙
sudo systemctl stop firewalld
# 开启防火墙
sudo systemctl start firewalld
# 上面的命令是临时的,重启后就失效了
# 彻底关闭防火墙
sudo systemctl disable firewalld

参考链接 blog.51cto.com/u_16099205/…

安装mysql

centos7离线安装mysql8.0.26 centos7离线安装mysql8 mysql下载目录 dev.mysql.com/downloads/m… 这里选择版本8.0.40,RedHat Enterprise linux, RedHat Enterprise Linux7/Oracle Linux 7(x86,64-bit)下的bundle.tar包下载。

下载得到mysql-8.0.40.el7.x86_64.rpm-bundle.tar,上传到服务器

# 解压到指定目录
tar -xvf /mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql/

解压后生成一堆rpm文件

mysql-community-client-8.0.40-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.40-1.el7.x86_64.rpm
mysql-community-common-8.0.40-1.el7.x86_64.rpm
mysql-community-debuginfo-8.0.40-1.el7.x86_64.rpm
mysql-community-devel-8.0.40-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.40-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.40-1.el7.x86_64.rpm
mysql-community-libs-8.0.40-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.40-1.el7.x86_64.rpm
mysql-community-server-8.0.40-1.el7.x86_64.rpm
mysql-community-server-debug-8.0.40-1.el7.x86_64.rpm
mysql-community-test-8.0.40-1.el7.x86_64.rpm

cd /usr/local/mysql,需要逐个安装以下文件,执行

rpm -ivh mysql-community-common-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-debuginfo-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-debug-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.40-1.el7.x86_64.rpm


警告:mysql-community-devel-8.0.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID a8d3785c: NOKEY
错误:依赖检测失败:
	pkgconfig(openssl) 被 mysql-community-devel-8.0.40-1.el7.x86_64 需要

pkgconfig(openssl) 被 mysql-community-devel-8.0.26-1.el7.x86_64 需要

centos离线安装openssl-dev

警告:mysql-community-test-8.0.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID a8d3785c: NOKEY
错误:依赖检测失败:
	perl(Data::Dumper) 被 mysql-community-test-8.0.40-1.el7.x86_64 需要
	perl(JSON) 被 mysql-community-test-8.0.40-1.el7.x86_64 需要
	perl(Test::More) 被 mysql-community-test-8.0.40-1.el7.x86_64 需要

centos离线安装mysql5.5.55附带perl依赖

走到这里安装不下去了,需要的依赖太多,只能去申请开通服务器网络访问。

开通了之后,发现yum install 任何东西都是失败。需要切换yum安装源。

备份一下原repo配置

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

清一下缓存

yum clean all

生成新的缓存

yum makecache

如果还是失败,可以查看/etc/yum.repos.d/CentOS-Base.repo这个文件的内容是否正常下载了,正确的内容应该是

[base] name=CentOS-$releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

可以直接复制以上内容到文件里,重新执行yum clean allyum makecache

开始在线安装

openssl-dev

sudo yum install openssl-devel

继续安装

# 切换到mysql目录
cd /usr/local/mysql

rpm -ivh mysql-community-devel-8.0.40-1.el7.x86_64.rpm

perl

先跳过 blog.51cto.com/u_16175511/…

mysql8修改密码

查看mysql用户

 select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| sskx@localhost   | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.01 sec)
vi /etc/my.cnf
添加 skip-grant-table 跳过权限验证

重启mysql

systemctl stop mysqld
systemctl start mysqld

登陆mysql

mysql -u root -p
提示输入密码直接按回车即可

登陆后重新开一个服务器登陆页面,把免验证登陆去掉,返回刚才的mysql页面,执行

flush privileges;

否则修改密码的时候会提示The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement的错误

修改密码

# 把旧密码置空
use mysql;
update user set authentication_string='' where user='root';
# 备注:Mysql5.7+ password字段 已改成 authentication_string字段

# 设置新密码
alter user 'root'@'localhost' identified by 'newpassword';

# mysql8.0之前的版本
update user set password=password('new password') where user='root';

重新一下,用新密码登陆。

安装nginx

如果用源码包安装方式,参考 juejin.cn/post/684490…

用yum安装nginx,要先安装epel-release,因为nginx不在yum的官方源仓库里,epel-release会自动配置yum的软件仓库。

yum install epel-release
yum update
yum install -y nginx

安装成功后,默认的网站目录为: /usr/share/nginx/html

默认的配置文件为:/etc/nginx/nginx.conf

自定义配置文件目录为: /etc/nginx/conf.d/

开80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent