刚开始安装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环境
方式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 需要
警告: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 需要
走到这里安装不下去了,需要的依赖太多,只能去申请开通服务器网络访问。
开通了之后,发现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 all和yum 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