Centos7安装、各种环境配置和常见bug解决方案,保姆级教程(更新中)
文章目录
- 前言
- 一、Centos7安装
- 二、各种环境配置与安装
- 2.1 安装net-tools(建议)
- 2.2 配置静态网络(建议)
- 2.1 修改Centos7的时间(建议)
- 2.2 Centos7系统编码问题
- 2.3 vim安装(建议)
- 2.4 解决Centos7命令错误发出蜂鸣警告声
- 2.5 安装wegt命令
- 2.6 Mysql8.0版本安装
- 2.7 Redis6安装
- 2.7.1 Redis安装与启动
- 2.7.2 Redis客户端
- 2.7.3 Redis卸载
前言
一、Centos7安装
因为网上关于Centos7安装教程实在是太多了,我这里就不重复造轮子了,直接上传送门
点击这里安装Centos7
二、各种环境配置与安装
安装好后就是各种要配置的东西了,我这里将各种有用的配置都记录了下来,方便以后重新安装的时候再查看
2.1 安装net-tools(建议)
centos7默认没有netstat命令,需要安装 net-tools 工具,
yum install -y net-tools
2.2 配置静态网络(建议)
1、进入虚拟机/设置,查看是否是NAT模式


2、查看虚拟网络编辑器



3、进入etc/sysconfig/network-scripts目录,使用vi打开 ifcfg-ensXXX文件,进行编辑
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33

IPADDR中设置的ip地址以后就是这台虚拟机的默认ip地址
设置完后一点要记得重启服务
service network restart
用ifconfig命令查看网络是否已经配置成功(如果命令找不到先安装net-tools)

ping百度

2.1 修改Centos7的时间(建议)
使用命令:
date -s "2022/5/13 23:50:22"
说明:以上为案例,请根据自己情况修改时间
2.2 Centos7系统编码问题
问题:刚刚安装的时候建议检查一下系统编码,因为后期可能会用到Xshell(比如我是用的是Xshell5),如果linux下编码和Xshell中编码不同可能会导致Xshell中出现中文乱码情况。
1、使用loacle命令查看Centos7中的系统编码
centos系统找不到locate命令(locate: command not found)
安装mlocate包,一开始安装了locate,结果发现没有这个包yum -y install mlocate更新数据库
updatedb这里需要注意一点:如果没有updatedb更新后台数据库,直接输入查找命令:locate,还是未能找到命令。原因是Linux不是实时更新它的后台数据库,所以我们并不能马上执行。
运行“locate inittab”(必须安装完,并执行updatedb之后执行此命令)locate inittab
[root@localhost ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
注意LANG=zh_CN.UTF-8,我这里是UTF-8格式是我后期修改好了的。如果需要修改请看下面
2、修改 /etc/locale.conf 文件
使用命令:
vi /etc/locale.conf
将里面的内容改为LANG=zh_CN.UTF-8即可
2.3 vim安装(建议)
问题:刚刚安装Cenots7时,常用编辑命令Vim并不会安装好,命令行输入vim会显示bash vim: command not found,接下来展示安装vim步骤。
1、先检查系统是否有安装完整的vim
使用命令:
rpm -qa|grep vim
如果已经正确安装的话,会显示如下三行:
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
2、安装vim
使用命令:
yum -y install vim*
等待安装成功即可
命令行输入vim检测是否安装成功

2.4 解决Centos7命令错误发出蜂鸣警告声
问题:每次输入命令错误,用tab快速补全的时候总会有这种警告声
1、修改inputrc文件
vi /etc/inputrc

2、 修改bashrc文件
vi /etc/bashrc

3、重启
reboot
2.5 安装wegt命令
yum -y install wget
2.6 Mysql8.0版本安装
需要准备:mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
1、将mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar用Xftp工具从Window传送到linux系统下。

700多M,等待传送完即可
2、创建“mysql”目录,并将解压的文件放到这个目录下
进入到/opt/目录下
cd /opt/
注意:当文件传送成功后,在linux的/opt/目录下就会存在该压缩包

在当前目录(/opt/)下创建“mysql”目录
mkdir mysql
将解压后的文件放在“mysql”目录下(当前目录要为/opt/)
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql

解压完成!
进入到mysql目录下查看,会发现有以下这些安装包

3、用rpm指令解压“mysql”目录下安装rpm安装包
注意一定要先cd到mysql目录下!(下面所有指令按顺序执行)
cd mysql (如果当前是mysql目录下可以不用输入这行)rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm (这里出错,解决见下方①)rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpmyum install openssl-develrpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm(这里出错,解决见下方②)
①rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm执行失败
出错详情:

解决方案:
输入以下命令
yum remove mysql-libs
紧接着遇到询问,输入y
执行完后,重新输入:rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm

问题解决!
②rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm执行失败
出错详情:

解决方案:
安装net-tools(server安装需要依赖net-tools)
yum -y install net-tools

重新输入:rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm

成功解决,并无报错!
4、启动MySQL服务
启动服务
systemctl start mysqld
重启服务
systemctl restart mysqld
停止服务
systemctl stop mysqld

5、查询自动生成的root用户密码
grep 'temporary password' /var/log/mysqld.log

命令行执行指令 :
mysql -u root -p
然后输入上述查询到的自动生成的密码, 完成登录

6、修改root用户密码
登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。
修改密码指令如下:
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
执行上述的SQL会报错,原因是因为设置的密码太简单,密码复杂度不够,会对长度和特殊字符等进行校验,所以我们先把校验复杂度调低一点,0代表只校验长度,不校验特殊字符
set global validate_password.policy = 0;
当然也可以指定密码长度(如下指定密码长度为4)
set global validate_password.length = 4;
设置完后,重新输入修改密码指令即可!
如果遇到“-bash: ALTER: command not found”错误,那是因为没有登录进MySQL,登录方法见第5步
到了这mysql配置基本上已经ok了,下面选择性配置,用于让DataGrip连接到linux上的mysql
7、创建用户(选)
默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问。我设置密码长度为6以便自己后续使用;set global validate_password.length = 6;
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '111111';
8、并给root用户分配权限(选)
grant all on *.* to 'root'@'%';
9、重新连接MySQL(选)
mysql -u root -p
然后输入密码
10、通过DataGrip远程连接MySQL(选)

测试连接

如果成功那就没问题了。如果失败,可能原因是linux上的防火墙没有开放3306端口
要么关闭防火墙
1、关闭防火墙
systemctl stop firewalld.service
2、查看防火墙状态
firewall-cmd --state
确认下是否关闭,然后再试试Test Connection,成功页面如下

要么在防火墙上开放3306端口
1、先检查一下防火墙上所有的开放端口
firewall-cmd --zone=public --list-ports

有显示3306那就没问题,如果没有接下来就开放3306端口
2、防火墙开通3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、重新加载防火墙配置文件:
firewall-cmd --reload
接下来就测试连接,按理来说已经可以连上了~
2.7 Redis6安装
2.7.1 Redis安装与启动
1、安装Redis所需要的gcc依赖
yum install -y gcc tcl
2、下载安装包并解压
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
回到linux命令行下,进入/usr/local/src/目录(/usr/local/src/为下载时的目录,根据情况修改)
cd /usr/local/src/
ll

解压文件
tar -zxvf redis-6.2.6.tar.gz
解压后进入到radis目录
cd redis-6.2.6
运行编译命令:
make && make install
如果没有出错,应该就安装成功了。默认的安装路径是在 /usr/local/bin目录下:
启动radis
redis-server
这种启动方式属于前台启动,如果想要连接的话,需要另外再开一个连接,所以我们要对其进行设置一下
3、指定配置启动
如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf:
我们先将这个配置文件备份一份:

进入到/usr/local/src/redis-6.2.6目录下
cd /usr/local/src/redis-6.2.6
进行备份
cp redis.conf redis.conf.bck
然后对这个配置文件进行修改
vi redis.conf
然后修改redis.conf文件中的一些配置:
因为查找起来比较麻烦,所以推荐在命令行esc下用/(关键字)来搜索,按n是继续查找下一个,N是上一个。
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
Redis的其它常见配置:
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
4、启动Redis
修改完配置后,开始启动Redis
# 进入redis安装目录
cd /usr/local/src/redis-6.2.6
# 启动
redis-server redis.conf
查看一下redis是否成功运行
ps -ef | grep redis

启动成功
如果要停止服务,可以杀死进程(6341是我这里显示的进程id)
kill -9 6341
4、开机自启radis
我们也可以通过配置来实现开机自启。
首先,新建一个系统服务文件(还是在之前的目录):
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/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
2.7.2 Redis客户端
安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,这里演示命令行客户端用法
Redis命令行客户端
Redis安装完成后就自带了命令行客户端:redis-cli,
它就在下图所示位置

使用方式如下:
redis-cli [options] [commonds]
其中常见的options有:
-h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1-p 6379:指定要连接的redis节点的端口,默认是6379-a 123321:指定redis的访问密码
其中的commonds就是Redis的操作命令,例如:
ping:与redis服务端做心跳测试,服务端正常会返回pong

这种进入方式带密码,不太安全,可以用下面这种方式
另外:退出命令行指令是 ctrl+c

AUTH后面跟用户名和密码即可,我这里没有用户名,则直接输入密码。
2.7.3 Redis卸载
卸载redis非常的简单,只需要简单的三步
1、停止redis服务器
首先,通过下面的命令查看redis服务是否在运行
[root@centos101 ~]# ps aux|grep redis
[root@centos101 ~]# redis-cli shutdown
[root@centos101 ~]# ps aux|grep redis
2、删除make的时候生成的几个redisXXX的文件
[root@centos101 ~]# rm -rf /usr/local/bin/redis*
3、顺便也删除掉解压后的文件目录和所以文件
rm -rf reids的解压目录
相关文章:
Centos7安装、各种环境配置和常见bug解决方案,保姆级教程(更新中)
文章目录前言一、Centos7安装二、各种环境配置与安装2.1 安装net-tools(建议)2.2 配置静态网络(建议)2.1 修改Centos7的时间(建议)2.2 Centos7系统编码问题2.3 vim安装(建议)2.4 解决…...
【C++进阶】智能指针
文章目录为什么需要智能指针?内存泄漏什么是内存泄漏,内存泄漏的危害内存泄漏分类(了解)如何避免内存泄漏智能指针的使用及原理smart_ptrauto_ptrunique_ptrshared_ptr线程安全的解决循环引用weak_ptr删除器为什么需要智能指针&am…...
软件测试面试题 —— 整理与解析(3)
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能…...
springboot常用的20个注解
Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成, 而Spring Boot 之所以能够轻松地实现应的创建及与…...
USB组合设备——带鼠标功能的键盘
文章目录带鼠标功能的键盘一个接口实现报告描述符示例多个接口实现复合设备和组合设备配置描述符集合的实现报告的返回附 STM32 枚举日志复合设备:Compound Device 内嵌 Hub 和多个 Function,每个 Function 都相当于一个独立的 USB 外设,有自…...
数据结构与算法基础-学习-18-哈夫曼编码
一、个人理解在远程通讯中,需要把字符转成二进制的字符串进行传输,例如我们需要传输ABCD,我们可以用定长的字符串进行表示,例如:A:00B:01C:02D:03这样可能就造成空间的浪费,我们多存储了一个0号位。那用变长呢…...
ZMC408CE | 实现“8通道独立PSO”应用场景
一、ZMC408SCAN产品亮点 1.高性能处理器,提升运算速度、响应时间和扫描周期等; 2.一维/二维/三维、多通道视觉飞拍,高速高精; 3.位置同步输出PSO,连续轨迹加工中对精密点胶胶量控制和激光能量控制等; 4…...
QuickJS中JS_SetClassProto方法把JavaScript对象指定为某个类的原型对象
在 QuickJS 中,JS_SetClassProto 方法用于设置一个类的原型对象。这个方法的作用是将一个 JavaScript 对象指定为该类的原型对象,从而定义该类的属性和方法。 具体来说,JS_SetClassProto 方法的第一个参数是指向 QuickJS 引擎执行上下文的指…...
泰克信号发生器特点
泰克信号发生器是一种用于产生各种类型的电子信号的仪器,可以广泛应用于电子、通信、自动化、医疗等领域。泰克信号发生器具有以下特点:多种信号类型:泰克信号发生器可以产生多种类型的电子信号,包括正弦波、方波、三角波、脉冲等…...
贯穿设计模式第四话--里氏替换原则
🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,我是最爱吃鱼罐头,大家可以叫鱼罐头呦~🥳🥳🥳 从今天开始,将…...
6501: 鸡兔同笼
描述 一个笼子里面关了鸡和免子(鸡有两只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 输入 一个正整数a(a<32768)。 输出 包含两个正整数,第一个是最少的动物数,第二个是最多的…...
Linux项目自动化构建工具-make/makefile 介绍及使用
使用背景 在工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义一系列 规则来指定什么文件需要先编译,什么文件需要后编译,哪些文件需要重新编译,或者更复杂 的功能操作 makefile带来的好处…...
【云原生|Docker】06-dokcerfile详解
目录 前言 Dockerfile基础示例 Dockerfile简介 1. Dockerfile概念 2. Dokcer镜像分层理解 3. Doker build构建原理 Dockerfile参数解析 1. Dokcerfile组成 2. 指令说明 2.1 FROM引入基础镜像 2.2 LABEL 2.3 ENV 2.4 RUN 2.5 COPY 2.6 ADD 2…...
【SCL】博图——先入先出排序法
使用博图SCL语言来实现先入先出排序 前言 使用SCL完成一个先入先出排序 具体要求:最先输入的一个数值,最先输出出来,下面的数自动向前填充; 注:这里可能有两种理解:一是第一个输入的第一个出来ÿ…...
OSPF----特殊区域
目录 OSPF----特殊区域 第一大类----末梢区域(Stub Area) 完全末梢区域((Totally Stub Area) 第二大类特殊区域----非完全末梢区域(NSSA) OSPF----特殊区域 第一大类----末梢区域(Stub Area)…...
JVM-类加载
1:类加载机制: 加、验、准、解、初、使、卸 加、烟、准、姐、初、湿、鞋 加载、将class 文件转化为二进制流加载 JVM 内存中并生成一个该类的Class对象验证、Class 文件的字节流中包含的信息是否符合当前虚拟机的要求准备、在方法区中分配这些变量所…...
超详细讲解C语言文件操作!!
超详细讲解C语言文件操作!!什么是文件文件名文件的打开和关闭文件指针文件的打开和关闭文件的顺序读写文件的随机读写fseekftellrewind文本文件和二进制文件文件读取结束的判定文件缓冲区什么是文件 磁盘上的文件是文件。但是在程序设计中,我…...
linxu学习之进程
文章目录进程程序和进程产生进程销毁进程多进程高并发设计孤儿僵尸守护进程孤儿进程:守护进程(重点)僵尸进程:进程 程序和进程 操作系统可以运行多个程序,那他是如何运行的?实际上,CPU的执行是很快的,而待…...
蓝桥杯真题2
[蓝桥杯 2013 省 B] 连号区间数 题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 111 ~ NNN 的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间 [L,R][L, R][L,R] 里的所有元素(即此排列的…...
PWM互补输出,以及死区时间计算
本文基于野火例程进行解说 实验内容 本次实验输出一对互补的pwm波,且进行死区时间的计算说明。 代码 互补输出对应的定时器初始化代码: bsp_advance_tim.c /********************************************************************************* fi…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
