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…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...