Centos7配置记录
passwd 修改密码
passwd # 修改当前用户的密码
passwd 用户名 # 修改指定用户的密码,仅root用户可用
设置免密登录
本地生成 ssh 密钥
ssh-keygen
生成两个文件,centos_1_rsa
(私钥),centos_1_rsa.pub
(公钥),存放在~/.ssh/
下
编辑~/.ssh/config
Host centos_1
HostName 192.168.153.135
User zfp
PreferredAuthentications publickey
IdentityFile C:\Users\xxx\.ssh\centos_1_rsa
接下来在服务端操作:
-
在用户家目录创建
.ssh
文件夹以及authorized_keys
文件cd mkdir .ssh && chmod 700 .ssh touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
将之前生成的公钥
centos_1_rsa.pub
复制到authorized_keys
中 -
修改 ssh 配置文件:
/etc/sshd/sshd_config
打开配置文件
su # 切换为root vim /etc/ssh/sshd_config
修改以下内容
PubkeyAuthentication yes # 打开公钥认证 PermitRootLogin no # 禁用root登录(可选) PasswordAuthentication yes # 先别关闭密码认证,等公钥认证成功了再修改为no
-
重启 ssh 服务
sudo systemctl restart sshd
用户管理
sudo adduser user # 添加用户user
sudo passwd user # 设置用户root密码
sudo usermod -G root user # 赋予sudo权限
sudo usermod -G wheel user # 赋予sudo权限(Centos7中和上面的作用一样)
su user # 切换为user用户
su # 切换为root用户
# 删除用户前先切换为其他用户
userdel -r user # 删除用户user及其目录
groupdel user # 删除用户user组
groups # 查看当前用户所在组
配置清华源
# centos7使用
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 更新软件包缓存
sudo yum makecache
配置阿里源
# centos7
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 更新软件包缓存
sudo yum makecache
设置静态 ip
查看 ip 地址,网卡等等
ip a
修改配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改注释处的配置
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 改为静态分配
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="6b918d15-ad4b-4548-a40e-c5c5e020b159"
DEVICE="ens33"
ONBOOT="yes" # 改为yes
IPV6_PRIVACY="no"
IPADDR="192.168.153.135" # 设置为你想分配的ipv4地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.153.2" # 网关
DNS1="119.29.29.29" # 腾讯的dns服务器
重启网络服务
sudo systemctl restart network.service
配置完成
修改时区
sudo timedatectl set-timezone Asia/Shanghai
服务管理
Centos7
和Ubuntu 20.04LTS
的服务管理命令基本一样
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
yum 基础命令
# 以vim为例
sudo yum install -y vim # 安装软件,-y表示同意下载
sudo yum remove vim # 卸载
sudo yum deplist vim # 显示软件依赖
sudo yum info vim # 显示软件包的描述信息和概要信息
sudo yum update # 更新所有软件
sudo yum clean all # 清除所有缓存的软件包
sudo yum makecache # 更新软件包缓存
防火墙
sudo systemctl start firewalld # 开启防火墙
sudo systemctl stop firewalld # 关闭防火墙
sudo systemctl status firewalld # 查看防火墙状态
sudo systemctl disable firewalld # 禁用防火墙
修改主机名
sudo hostnamectl set-hostname newname
安装第三方软件库
sudo yum -y install epel-release
安装 git
sudo yum install -y git
安装 htop
sudo yum -y install epel-release
sudo yum -y install htop
安装 oh-my-zsh
1.安装zsh
sudo yum update && sudo yum -y install zsh
2.安装oh-my-zsh
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
3.修改主题
使用vim
打开.zshrc
配置文件
vim ~/.zshrc
修改主题为ZSH_THEME="ys"
重新加载配置文件生效
source ~/.zshrc
4.修改默认终端为 zsh
chsh -s $(which zsh)
exec zsh
重启生效
安装 neofetch
安装 epel-release
sudo yum install epel-release
添加第三方软件源
sudo curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo
使用包管理器安装 neofetch
sudo yum install neofetch
安装成功
安装开发软件
/home/zfp/zips
文件夹下# zfp @ centos1 in ~/zips
$ ls
apache-maven-3.8.6-bin.tar.gz jdk-8u341-linux-x64.tar.gz redis-7.0.5.tar.gz
apache-tomcat-9.0.68.tar.gz node-v16.17.1-linux-x64.tar.xz
1.安装 gcc
sudo yum -y install gcc gcc-c++ kernel-devel # 此时gcc版本为4.8.5
# 下面升级到9.3.1版本
sudo yum install centos-release-scl
sudo yum install devtoolset-9-gcc-c++
source /opt/rh/devtoolset-9/enable
2.安装 miniconda
安装python3.8
对应版本
wget -c https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh
添加权限
chmod 777 Miniconda3-py38_4.12.0-Linux-x86_64.sh
sh Miniconda3-py38_4.12.0-Linux-x86_64.sh
一直Enter
,然后yes
,最后确认一下安装路径
添加到环境变量,这里使用的是zsh
vim ~/.zshrc
export PATH=/home/user/miniconda3/bin:$PATH
输出版本号安装成功
$ conda --version
conda 4.12.0
3.安装 oracle-jdk
创建目录并解压
-
在
/usr/local/
下创建java
文件夹并进入 -
将上面准备好的
JDK
安装包解压到/usr/local/java
中即可
tar -zxvf /home/zfp/zips/jdk-8u341-linux-x64.tar.gz -C ./
解压完之后,/usr/local/java
目录中会出现⼀个 jdk1.8.0_341
的目录
配置 JDK 环境变量
编辑 /etc/profile
⽂件,在文件尾部加入如下 JDK
环境配置即可
JAVA_HOME=/usr/local/java/jdk1.8.0_341
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
执行下面命令使环境变量生效
source /etc/profile
验证 JDK 安装结果
java -version
javac
4.安装 node
创建目录并解压
-
在
/usr/local/
下创建node
文件夹并进入su cd /user/local/ mkdir node cd node/
-
将
Node
的安装包解压到/usr/local/node
中即可tar -xJvf /home/zfp/zips/node-v16.17.1-linux-x64.tar.xz -C ./
解压完之后,
/usr/local/node
⽬录中会出现⼀个node-v16.17.1-linux-x64
的⽬录
配置 node 系统环境变量
编辑 ~/.zshrc
⽂件,在⽂件末尾追加如下信息:
export PATH=/usr/local/node/node-v16.17.1-linux-x64/bin:$PATH
刷新环境变量使其生效
source ~/.zshrc
验证安装结果
node -v
npm version
npx -v
npm 更换淘宝源
npm config set registry https://registry.npm.taobao.org # 换源
npm config get registry # 验证结果
如果需要换回原来的源,输入下面的命令
npm config set registry https://registry.npmjs.org/
5.安装 maven
创建目录并解压
maven
安装目录:/opt/maven/
su
mkdir /opt/maven/
cd /opt/maven/
tar zxvf /home/zfp/zips/apache-maven-3.8.6-bin.tar.gz
解压完成之后,得到一个apache-maven-3.8.6
目录
配置阿里云镜像加速
官网地址:https://maven.aliyun.com/
编辑修改/opt/maven/apache-maven-3.8.6/conf/settings.xml
文件,在 <mirrors></mirrors>
标签对⾥添加如下内容即可:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
配置本地仓库
我这里配置本地仓库地址为/opt/maven/apache-maven-3.8.6/repo
<localRepository>/opt/maven/apache-maven-3.8.6/repo</localRepository>
如下图所示:
配置环境变量
编辑 ~/.zshrc
⽂件,在⽂件尾部加⼊如下 JDK
环境配置即可
export MAVEN_HOME=/opt/maven/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH
执行下面命令使环境变量生效
source ~/.zshrc
验证 maven 安装结果
mvn -v
最后,记得设置一下权限,避免后面打包出现问题
sudo chmod -R 777 /opt/maven/apache-maven-3.8.6
下面是一些常用命令
mvn clean # 清除taget目录
mvn package -DskipTests # 跳过测试代码,SpringBoot项目中常用
6.安装 MySQL5.7.41
如果系统之前⾃带Mariadb
,需要先卸载
⾸先查询已安装的Mariadb
安装包:
rpm -qa|grep mariadb
开始安装
进入到目录/usr/local/
中
cd /usr/local/
创建目录/usr/local/tools
,如果有则忽略
mkdir -p tools
创建 /usr/local/mysql
目录,如果已存在则忽略
mkdir -p mysql
进入到目录/usr/local/tools
中
cd tools/
查看系统中是否已安装MySQL
服务
rpm -qa | grep mysql
或
yum list installed | grep mysql
如果已安装则删除MySQL
及其依赖的包
yum -y remove mysql-libs.x86_64
安装 yum 源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装 mysql-server
yum install mysql-server -y
启动 mysqld
systemctl start mysqld && systemctl enable mysqld
获取 mysql 密码
grep 'temporary password' /var/log/mysqld.log
登陆 mysql 修改密码
mysql -u root -p
输入密码后登陆
然后修改密码
SET PASSWORD = PASSWORD('your new password');
设置密码永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新
flush privileges;
设置密码报错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql
安装了validate_password
密码校验插件,导致要修改的密码不符合密码策略的要求
查看当前密码设置策略:
SHOW VARIABLES LIKE 'validate_password%';
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
validate_password_length:密码最小长度。
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count:密码至少要包含的数字个数。
validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count:密码至少要包含的特殊字符数。
其中,关于validate_password_policy-密码强度检查等级:
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
可以按要求设置密码后卸载该插件
uninstall plugin validate_password;
重新设置密码
SET PASSWORD = PASSWORD('123456');
设置 root 可远程连接
mysql -u root -p
输入密码后登陆
use mysql;
select host, user from user;
update user set host = '%' where user = 'root';
select host, user from user;
flush privileges;
7.安装 MySQL8.0.32
下载地址:https://dev.mysql.com/downloads/mysql/
下载压缩包
卸载已有的 mariadb
rpm -qa|grep mariadb
rpm -e --nodeps 文件名 # 上一条查出的文件名
rpm -qa|grep mariadb # 再次确认,没有输出则成功卸载
解压
su
mv /home/zfp/mysql-8.0.32-el7-x86_64.tar.gz /usr/local/ # 移动到/usr/local
cd /usr/local/
tar -zxvf mysql-8.0.32-el7-x86_64.tar.gz -C . # 解压
mv mysql-8.0.32-el7-x86_64 mysql8 # 解压后的文件夹改名
添加环境变量
sudo vim /etc/profile
# 在末尾添加下面命令
export PATH=$PATH:/usr/local/mysql8/bin
# 刷新环境变量
source /etc/profile
# 查看版本
mysql --version
创建用户组、用户
groupadd mysql
useradd -r -g mysql mysql
创建数据目录
# 创建目录
mkdir -p /data/mysql8_data
# 更改属主和数组
chown -R mysql:mysql /data/mysql8_data
# 更改模式
chmod -R 750 /data/mysql8_data
创建配置文件
新建/usr/local/etc/my.cnf
文件
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql8
# 数据存放目录
datadir = /data/mysql8_data/mysql
log-bin = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹路径,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
初始化
和上面创建的文件及文件夹对应,注意:初始化时未设置密码
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
启动服务
安全后台启动 MySQL
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
查看服务
ps -ef|grep mysql
登录
无密码登录
mysql -u root --skip-password
设置密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;
实现远程连接
# 创建用户
CREATE user 'root'@'%';
# 设置首次密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 授权用户所有权限,刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
注意: 远程连接需要开放 3306 端口,这里我直接关掉防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 禁用防火墙
服务化
服务化之前最好关掉之前的mysql
进程
ps aux |grep mysql # 查看运行的mysql进程
kill -9 进程id
新建服务文件并授权
sudo vim /etc/systemd/system/mysql.service
# 加上权限
sudo chmod 777 /etc/systemd/system/mysql.service
服务文件如下:
[Unit]
Description=MySQL Server 8.0
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf
LimitNOFILE = 5000
执行下列命令
# 通知systemd一个新的单元文件存在
sudo systemctl daemon-reload
# 启用并且启动Tomcat服务
sudo systemctl enable --now mysql
服务管理
# 检查服务状态
sudo systemctl status mysql
# 启动、停止、重启mysql
sudo systemctl disable mysql #取消开机运行
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
8.安装 Redis
解压压缩包
-
在
/usr/local/
下创建redis
⽂件夹并进⼊cd /usr/local/ mkdir redis cd redis
-
将
Redis
安装包解压到/usr/local/redis
中即可tar zxvf /home/zfp/zips/redis-7.0.5.tar.gz -C ./
解压完之后,
/usr/local/redis
⽬录中会出现⼀个redis-7.0.5
的⽬录
编译并安装
cd redis-7.0.5/
make && make install
将 Redis
安装为系统服务并后台启动
进 utils
⽬录,并执⾏如下脚本
cd utils/
./install_server.sh
报错信息
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
# echo "This systems seems to use systemd."
# echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
# exit 1
#fi
重新执行安装脚本
./install_server.sh
启动 redis 服务
systemctl start redis_6379.service
注意: 配置文件位于/etc/redis/6379.conf
启动自带的redis-cli
客户端,测试通过:
设置允许远程连接
编辑redis
配置文件
vim /etc/redis/6379.conf
注释bind 127.0.0.1 -::1
这一行
设置访问密码
去掉requirepass
前的注释,将foobared
修改为自己想要的密码,保存即可
requirepass admin
重启服务
sudo systemctl restart redis_6379
使用another redis desktop manager
测试连接redis
:
启动 Redis 报错
临时解决办法
sudo rm -rf /var/run/redis_6379.pid
cd /var/lib/redis/6379
rm -f dump.rdb
根本上解决:
由于redis
自己创建的服务脚本关闭 redis 默认是无密码的,所以我们对 redis 设置密码后自然就无法正常关闭了,所以我们需要修改一下脚本
cd /etc/rc.d/init.d/
mv redis_6379 redis # 将服务名改为redis,更容易记忆
vim redis
修改 redis 服务脚本如下
systemctl daemon-reload # 重新加载服务单元
systemctl stop redis # 暂停redis
systemctl start redis # 启动redis
systemctl restart redis # 重启redis
systemctl status redis # 查看redis状态
9.安装 Tomcat
解压并安装
-
在
/usr/local/
下创建tomcat
⽂件夹并进入cd /usr/local/ mkdir tomcat cd tomcat
-
将
tomcat
安装包解压到/usr/local/tomcat
中tar -zxvf /home/zfp/zips/apache-tomcat-9.0.68.tar.gz -C ./
解压完之后,
/usr/local/tomcat
目录中会出现⼀个apache-tomcat-9.0.68
的目录 -
直接进
apache-tomcat-9.0.68
目录,执行安装脚本cd /usr/local/tomcat/apache-tomcat-9.0.68/bin/ ./startup.sh
这时候浏览器访问: 你的主机IP:8080
,得到如下画面说明成功启动了
配置快捷操作和开机启动
打开下面这个脚本
sudo vim /usr/local/tomcat/apache-tomcat-9.0.68/bin/catalina.sh
在开头添加JAVA_HOME
变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_341
接着进入/etc/rc.d/init.d
目录,创建⼀个名为tomcat
的⽂件,并赋予执行权限
cd /etc/rc.d/init.d/
touch tomcat
chmod +x tomcat
在tomcat
文件中添加下列内容
#!/bin/bash
#chkconfig:- 20 90
#description:tomcat
#processname:tomcat
TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-9.0.68
case $1 in
start) su root $TOMCAT_HOME/bin/startup.sh;;
stop) su root $TOMCAT_HOME/bin/shutdown.sh;;
*) echo "require start|stop" ;;
esac
后续对于 Tomcat 的开启和关闭只需要执行如下命令即可:
service tomcat start
service tomcat stop
加入开机启动可通过下面的命令:
chkconfig --add tomcat
chkconfig tomcat on
10.安装 nginx
sudo yum install -y nginx
主配置文件: /etc/nginx/nginx.conf
nginx 服务管理:
sudo systemctl enable nginx # 设置开机启动
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置,一般是在修改过 nginx 配置文件时使用。
验证安装如下:
11.安装 Docker 和 Docker-Compose
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo docker run hello-world # 测试是否安装成功
安装成功,打印一下版本号:
配置镜像加速
新建daemon
配置文件
sudo vim /etc/docker/daemon.json
添加下面的配置
{
"registry-mirrors": [
"https://xxx.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
添加了四个镜像源,分别是阿里源,中科大源,Docker 中国镜像源,网易源
其中阿里源需要登录阿里云,点开控制台,搜索容器镜像服务,点击镜像加速器获取地址
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
将当前用户添加到 docker 用户组
避免每次使用docker
都要加sudo
命令,运行下列命令
sudo usermod -aG docker $USER
注: 该命令需要重新连接服务器才生效
12.安装宝塔面板
# 下载安装脚本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
# 执行安装脚本,正式安装
sudo sh install.sh
# 卸载宝塔面板
wget http://download.bt.cn/install/bt-uninstall.sh
sudo sh uninstall.sh
# 1.卸载宝塔
# 2.卸载宝塔及运行环境
# 注意选择1,否则会影响已安装的软件