Linux 软件安装

一、Linux

1、Linux异常解决

1、Another app is currently holding the yum lock; waiting for it to exit...

解决办法:
rm -f /var/run/yum.pid

1、杀死这个应用程序
ps aux | grep yum(查询有关yum的进程,找到那个更新进程)
命令:kill -s 9 2833 pid
kill 的用法: kill [信号代码] 进程ID
注:信号代码可以省略;我们常用的信号代码是 -s 9 ,表示强制终止;
2833是这个进程的ID
2、强制关掉yum进程,并重新运行yum
#rm -f /var/run/yum.pid
注:强制删除:#rm -f
解释:强制删除文件:  /var/run/yum.pid
如果上面方法不行的话,尝试使用下面的方法。

2、wget: command not found

[root@node1 mysql]# wget  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz
-bash: wget: command not found

解决办法:
yum -y install wget

1、JDK安装

1、Linux卸载JDK

1、查看java -version查看linux系统是否已经安装jdk

[root@localhost java]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

2、查看jdk安装的路径:which java

[root@localhost java]# which java
/usr/java/jdk1.8.0_202/bin/java

3、卸载jdk

rm -rf /usr/java/jdk1.8.0_202/bin/java

4、删除环境变量:export开头的三行


[root@localhost java]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5、检查下系统自带的jdk,并删除它

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

2、Linux安装JDK

JDK官方下载地址

1、将文件jdk-21.0.1_linux-x64_bin.tar.gz移动到/usr/java下,usr下没有java文件夹,可以先创建java文件夹:mkdir java

[root@localhost java]# ls
jdk-21.0.1_linux-x64_bin.tar.gz

2、解压

[root@localhost java]# tar -zxvf jdk-21.0.1_linux-x64_bin.tar.gz

3、在/etc/profile文件中,配置环境变量,使JDK在所有用户中生效

编辑文件,在最后添加如下三行:

export JAVA_HOME=/usr/java/jdk-21.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4、保存退出后,执行source /etc/profile使修改的环境变量生效

[root@localhost java]# source /etc/profile

5、使用java -version命令测试是否成功

[root@localhost etc]# java -version
java version "21.0.1" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

3、Linux安装OpenJDK

openjdk-jdk-shenandoah下载地址

[root@localhost java]# tar -zxvf openjdk-jdk-shenandoah-linux-x86_64-server-release-gcc12-glibc2.36.tar.xz

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

//这个压缩包没有用gzip格式压缩,所以不用加z参数,所以不是所有的解压包都得用 -zxvf 
[root@localhost java]# tar -xvf openjdk-jdk-shenandoah-linux-x86_64-server-release-gcc12-glibc2.36.tar.xz
jdk/
jdk/legal/
jdk/legal/jdk.accessibility/
jdk/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO
jdk/legal/jdk.accessibility/ASSEMBLY_EXCEPTION
jdk/legal/jdk.accessibility/LICENSE
....

参照上面把jdk路径配置到环境变量/etc/profile文件中

[root@localhost java]# java -version
java: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by java)
java: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /usr/java/jdk/bin/../lib/libjli.so)
java: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /usr/java/jdk/bin/../lib/libjli.so)

重新安装ubuntu操作系统22.4.3版本,再安装成功。

root@admin:/usr/java# java -version
openjdk version "22-testing" 2024-03-19
OpenJDK Runtime Environment (build 22-testing-builds.shipilev.net-openjdk-jdk-shenandoah-b171-20231209)
OpenJDK 64-Bit Server VM (build 22-testing-builds.shipilev.net-openjdk-jdk-shenandoah-b171-20231209, mixed mode, sharing)
root@admin:/usr/java#

解决"lib64/libc.so.6: version `GLIBC_2.34' not found"错误

原因:某些库依赖特定的系统库版本,当我们运行程序时,如果系统库版本过低,可能会出现版本不匹配的错误。

解决步骤:

1、确认系统中GLIBC版本 ldd -version

[root@localhost ~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@localhost ~]#

2、下载高版本的GLIBC

下载地址:http://ftp.gnu.org/gnu/glibc/glibc-2.34.tar.gz 

3、安装高版本的GLIBC

centos版本低。升级不成功,果断换操作系统,重新安装ubuntu操作系统22.4.3版本

root@admin:~# ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.5) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

2、Redis安装

Redis是基于c语言编写的需要安装依赖,需要安装gcc:

yum install gcc-c++

查看gcc版本:

 gcc -v

下载Redis

wget http://download.redis.io/releases/redis-7.2.3.tar.gz

[root@localhost redis]# wget http://download.redis.io/releases/redis-7.2.3.tar.gz                                                 --2023-11-24 00:18:22--  http://download.redis.io/releases/redis-7.2.3.tar.gz
Resolving download.redis.io (download.redis.io)... 45.60.125.1
Connecting to download.redis.io (download.redis.io)|45.60.125.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3384816 (3.2M) [application/octet-stream]
Saving to: ‘redis-7.2.3.tar.gz’

100%[========================================================================================>] 3,384,816    200KB/s   in 23s

2023-11-24 00:18:56 (146 KB/s) - ‘redis-7.2.3.tar.gz’ saved [3384816/3384816]

解压并安装Redis

tar -zvxf redis-7.2.3.tar.gz
cd redis-7.2.3/
make

[root@localhost redis-7.2.3]# make install
cd src && make install
which: no python3 in (/usr/java/jdk-21.0.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: Entering directory `/usr/lwz_tools/redis/redis-7.2.3/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/lwz_tools/redis/redis-7.2.3/src'
which: no python3 in (/usr/java/jdk-21.0.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: Entering directory `/usr/lwz_tools/redis/redis-7.2.3/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL redis-server
    INSTALL redis-benchmark
    INSTALL redis-cli
make[1]: Leaving directory `/usr/lwz_tools/redis/redis-7.2.3/src'
[root@localhost redis-7.2.3]#

redis默认安装路径:/usr/local/bin

[root@localhost redis-7.2.3]# cd /usr/local/bin
[root@localhost bin]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

redis默认不是后台启动,更改启动方式

有关redis配置文件的一些说明:

然后修改redis.conf文件中的一些配置

# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码
requirepass 123456

# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

启动redis-server服务

通过指定配置文件启动服务

redis-server redisconfig/redis.conf

使用redis-cli连接测试

redis-cli -p 6379

[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

#有密码需要 auth 你的密码

查看redis的进程是否开启(新开一个会话)

[root@localhost ~]# ps -ef|grep redis
root      7328     1  0 02:06 ?        00:00:00 redis-server 0.0.0.0:6379
root      7333  1565  0 02:06 pts/0    00:00:00 redis-cli -p 6379
root      7384  7345  0 02:12 pts/1    00:00:00 grep --color=auto redis
[root@localhost ~]#

如何关闭redis服务

127.0.0.1:6379> shutdown
not connected> exit
[root@localhost bin]#

再次查看服务:

[root@localhost ~]# ps -ef|grep redis
root      7386  7345  0 02:14 pts/1    00:00:00 grep --color=auto redis

设置Redis开机自启动

首先,新建一个系统服务文件:

vi /etc/systemd/system/redis.service

内容  /usr/local/bin/redis.conf指定配置文件路径可修改

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后重载系统服务:

systemctl daemon-reload

现在,我们可以用下面这组命令来操作redis了:

# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis

执行下面的命令,可以让redis开机自启:

systemctl enable redis

性能测试

redis 性能测试的基本命令如下:

redis-benchmark [option] [option value]

测试100个并发链接,每个并发100000请求

redis-benchmark -h localhost -p 6379 -c 100 -n 100000
Summary:
  throughput summary: 10989.01 requests per second
  latency summary (msec):
          avg       min       p50       p95       p99       max
        5.135     1.600     4.479     9.823    13.223    25.231
====== LRANGE_600 (first 600 elements) ======
  100000 requests completed in 10.48 seconds     #100000个请求  所有请求在10.48秒完成
  100 parallel clients                           #100个客户端
  3 bytes payload                                #每次3个字节
  keep alive: 1                                  #活跃1个
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

Latency by percentile distribution:
0.000% <= 1.463 milliseconds (cumulative count 1)
50.000% <= 5.175 milliseconds (cumulative count 50271)
75.000% <= 5.999 milliseconds (cumulative count 75004)
87.500% <= 8.087 milliseconds (cumulative count 87514)
93.750% <= 10.631 milliseconds (cumulative count 93761)
96.875% <= 13.255 milliseconds (cumulative count 96875)
98.438% <= 15.199 milliseconds (cumulative count 98438)
99.219% <= 17.823 milliseconds (cumulative count 99221)
99.609% <= 20.319 milliseconds (cumulative count 99611)
99.805% <= 23.279 milliseconds (cumulative count 99807)
99.902% <= 25.503 milliseconds (cumulative count 99903)
99.951% <= 26.863 milliseconds (cumulative count 99952)
99.976% <= 27.727 milliseconds (cumulative count 99976)
99.988% <= 28.351 milliseconds (cumulative count 99988)
99.994% <= 28.847 milliseconds (cumulative count 99994)
99.997% <= 29.087 milliseconds (cumulative count 99997)
99.998% <= 29.279 milliseconds (cumulative count 99999)
99.999% <= 29.391 milliseconds (cumulative count 100000)
100.000% <= 29.391 milliseconds (cumulative count 100000)

3、MySQL安装

3.1、卸载Centos7自带的mariadb

[root@node1 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@node1 ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root@node1 ~]# rpm -qa|grep mariadb
[root@node1 ~]#

3.2、安装MySQL

MySQL软件下载

3.2.1、先卸载已经安装的MySQL

# 1.查看当前系统中是否有mysql命令
[root@node1 ~]# rpm -qa | grep -i mysql
[root@node1 ~]#
# 如果没有,下面卸载命令可以忽略,如果存在,就卸载。
# 2.卸载mysql对应版本命令:
rpm -e mysql-libs-5.1.71-1.e16.x68_64 --nodeps

3.2.2、上传MySQL并解压配置

# 1.创建目录
mkdir /export/software/mysql
[root@node1 ~]# mkdir /export/software/mysql
[root@node1 ~]#
# 2.上传下载好的安装包到此路径(/export/software/mysql)
# 3.解压
[root@node1 ~]# cd /export/software/mysql/
[root@node1 mysql]# ls
mysql-8.3.0-linux-glibc2.17-x86_64.tar
[root@node1 mysql]# tar -xvf mysql-8.3.0-linux-glibc2.17-x86_64.tar

# 4.重命名文件为mysql-8.3
[root@node1 mysql]# ls
mysql-8.3.0-linux-glibc2.17-x86_64         mysql-router-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.3.0-linux-glibc2.17-x86_64.tar     mysql-test-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
[root@node1 mysql]# mv mysql-8.3.0-linux-glibc2.17-x86_64 mysql-8.3
[root@node1 mysql]# ls
mysql-8.3                                  mysql-router-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.3.0-linux-glibc2.17-x86_64.tar     mysql-test-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz

# 5.创建data文件夹存储文件
[root@node1 mysql]# cd mysql-8.3
[root@node1 mysql]# mkdir data

# 6.创建用户组以及用户
# 创建glwz组,再创建lwz用户并将lwz用户添加到组中
[root@node1 mysql-8.3]# groupadd lwz
[root@node1 mysql-8.3]# useradd -g lwz lwz
# 授权用户
[root@node1 mysql-8.3]# chown -R lwz.lwz /export/software/mysql/mysql-8.3

# 7.安装依赖
yum -y install libaio

tar -xvf 可以解压tar.xz后缀的压缩文件

tar -zxvf 可以解压tar.gz后缀的压缩文件

3.2.3、MySQL初始化

# 8.mysql初始化
# 进入bin目录执行mysqld文件进行初始化
[root@node1 bin]# ./mysqld --user=lwz --basedir=/export/software/mysql/mysql-8.3 --datadir=/export/software/mysql/mysql-8.3/data --initialize
2024-01-22T16:34:07.867725Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-01-22T16:34:07.870003Z 0 [System] [MY-013169] [Server] /export/software/mysql/mysql-8.3/bin/mysqld (mysqld 8.3.0) initializing of server in progress as process 1534
2024-01-22T16:34:07.886985Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-01-22T16:34:09.161917Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-01-22T16:34:12.381498Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: v/A9>uEWyYma
2024-01-22T16:34:16.301598Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

上面log倒数第二行内容最后是mysql生成的随机密码

root@localhost: v/A9>uEWyYma

暂时停止安装....

4、Zookeeper安装

zookeeper集群部署参照:https://www.cnblogs.com/jluo/p/16976145.html

下载 ZooKeeper 安装包

Step1:JDK安装

    由于zookeeper集群的运行需要Java运行环境,所以需要首先安装JDK。参照上方JDK安装进行完成安装1.8版本

Step2:Zookeeper安装

    1、下载 ZooKeeper 安装包,上传并解压

[root@node1 server]# pwd
/export/server
[root@node1 server]# tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz
...
apache-zookeeper-3.9.2-bin/docs/apidocs/zookeeper-server/org/apache/zookeeper/cl                                                                                                                                                             ass-use/Op.GetChildren.html
apache-zookeeper-3.9.2-bin/docs/apidocs/zookeeper-server/org/apache/zookeeper/cl                                                                                                                                                             ass-use/Op.GetData.html
apache-zookeeper-3.9.2-bin/docs/apidocs/zookeeper-server/org/apache/zookeeper/cl                                                                                                                                                             ass-use/Op.OpKind.html
apache-zookeeper-3.9.2-bin/docs/apidocs/zookeeper-server/org/apache/zookeeper/cl                                                                                                                                                             ass-use/Op.SetData.html
...
apache-zookeeper-3.9.2-bin/lib/jackson-annotations-2.15.2.jar
apache-zookeeper-3.9.2-bin/lib/jackson-core-2.15.2.jar
apache-zookeeper-3.9.2-bin/lib/jline-2.14.6.jar
apache-zookeeper-3.9.2-bin/lib/metrics-core-4.1.12.1.jar
apache-zookeeper-3.9.2-bin/lib/snappy-java-1.1.10.5.jar
[root@node1 server]# ls
apache-zookeeper-3.9.2-bin  hadoop-3.3.6  hive-3.1.3  jdk1.8.0_202
# 解压后文件夹改名字
[root@node1 server]# mv apache-zookeeper-3.9.2-bin zookeeper-3.9.2
[root@node1 server]# ls
hadoop-3.3.6  hive-3.1.3  jdk1.8.0_202  zookeeper-3.9.2

    2、为了能够在任意目录启动zookeeper,我们需要配置环境变量

首先进入到 /etc/profile 目录,添加相应的配置信息:

#set zookeeper environment
export ZK_HOME=/export/server/zookeeper-3.9.2
export PATH=$PATH:$ZK_HOME/bin

    3、保存退出后,执行source /etc/profile使修改的环境变量生效

[root@node1 server]# source /etc/profile
[root@node1 server]#

    4、配置 zoo.cfg
    首次使用 ZooKeeper,需要将 $ZK_HOME/conf下的 zoo_sample.cfg 文件重命名为 zoo.cfg,并进行以下配置

tickTime=2000    ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/export/data/zookeeper    ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/export/data/zookeeper-log     ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181    ##服务器对外服务端口,一般设置为2181
initLimit=5    ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2    ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍

    5、启动服务
    使用 $ZK_HOME/bin 目录下的 zkServer.sh 脚本进行服务的启动。

#启动命令:
zkServer.sh start
 
#停止命令:
zkServer.sh stop
 
#重启命令:
zkServer.sh restart
 
#查看集群节点状态:
zkServer.sh status

集群模式:同上

    1、配置 zoo.cfg追加

server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888

可以看到,相比于单机模式,集群模式多了 server.id=host:port1:port2 的配置。

    其中,id 被称为 Server ID,用来标识该机器在集群中的机器序号(在每台机器的 dataDir 目录下创建 myid 文件,文件内容即为该机器对应的 Server ID 数字)。host 为机器 IP,port1 用于指定 Follower 服务器与 Leader 服务器进行通信和数据同步的端口,port2用于进行 Leader 选举过程中的投票通信。

注意:IP1、IP2、IP3要修改为具体的IP。

    2、创建 myid 文件

    在 dataDir 目录下创建名为 myid 的文件,在文件第一行写上对应的 Server ID。

主机1
echo 1 > /export/data/zookeeper/myid
主机2
echo 2 > /export/data/zookeeper/myid
主机3
echo 3 > /export/data/zookeeper/myid

    3、启动服务

#启动命令:
zkServer.sh start
 
#停止命令:
zkServer.sh stop
 
#重启命令:
zkServer.sh restart
 
#查看集群节点状态:
zkServer.sh status

Linux常用命令

干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀神lwz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值