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…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...