Centos 7 的实战总结

前言

最近打算转战 Linux 服务器,为后续的 docker 容器化和 k8s 服务编排作准备。我在平常开发中,使用最多的是 windows server 服务器,linux 服务器使用过一些经常使用的命令。最近晚上修仙看视频加网上查资料,算是对 linux 熟悉了一点。java

本文主要涉及内容mysql

  • ssh 无密码登陆服务器
  • Linux 用户和用户组管理
  • rpm 包安装 、本地 yum 源搭建,阿里yum 源使用
  • Mysql 安装、修改 root 密码、忘记 root 密码怎么修改

内容实践环境linux

  • Cenos 7
  • macOs Catalina 10.15.2
  • 终端使用 iterm2

ssh 连接服务器

当你厌烦了一次一次输入帐号和密码,那能够尝试 shh 公钥私钥登陆。web

# 直接输入如下命令,便可连接远程服务器
ssh mflyyou
复制代码

一、生成公钥私钥

ssh-keygen -o -t rsa  -b 4096
复制代码

二、复制公钥远程服务器

公钥以 .pub 结尾。sql

# ssh-copy-id -i {公钥绝对路径} {远程服务器用户名}@{远程服务器 ip}
ssh-copy-id -i /Users/zhangpanqin/.ssh/test_local_server.pub parallels@10.211.55.8
复制代码

以上命令做用是,将指定的公钥内容,拷贝到远程服务器上的指定用户(parallels)下。这样之后这个用户(parallels)就能够不用输入密码登陆了。docker

运行上述命令,等价于将公钥内容拷贝到 /home/parallels/.ssh/authorized_keys。数据库

windows 系统没有 ssh-copy-id,能够手动拷贝公钥的内容到 /home/parallels/.ssh/authorized_keysvim

三、本地电脑配置私钥验证

本地电脑下 ~/.ssh/config 添加如下内容。windows

Host mflyyou.com
  HostName 10.211.55.8
  AddKeysToAgent yes
  UseKeychain yes
  User parallels
  IdentityFile /Users/zhangpanqin/.ssh/test_local_server
复制代码

用户和用户组管理

Linux 以文件来管理系统。良好的用户管理,利于服务器安全。这块我看了视频和资料都推荐不一样的程序使用不一样的用户。安装程序的用户不具备管理员权限,当须要管理员权限时,使用 sudo 来提高权限使用。缓存

用户建立

# 建立 mflyyou 用户,同时会建立 mflyyou 组 adduser mflyyou 复制代码# 修改 mflyyou 的密码,命令以后会提示你输入密码 passwd mflyyou 复制代码

以上建立的用户是不具备 sudo 提高权限的能力,须要修改 /etc/sudoers 使之生效。

# 在 root 下运行,修改文件的可写性 chmod 700 /etc/sudoers

# /etc/sudoers 文件中填写 mflyyou ALL=(ALL) PASSWD:ALL root ALL=(ALL) ALL mflyyou ALL=(ALL) PASSWD:ALL

复制代码# 权限给了以后,修改文件 /etc/sudoers 为只读性 chmod 400 /etc/sudoers 复制代码

对文件(夹)分配读写执行权限

为了不其它用户修改当前用户的文件内容,为了安全。

须要对安装的程序的文件夹或文件划分权限。 4 读 r,2 编辑 w,1 执行 x

chmod 754 /opt/config
复制代码

修改 /opt/config 所属用户、用户组、其它人的读、编辑、执行权限。 所属用户:读、编辑、执行,7 所属组:读、执行,5 其余:读,4

修改文件夹或者文件的所属用户和用户组

# 递归修改 /opt/config 的归属 admin 用户,所属 admin 组
chonw -R admin:admin  /opt/config 
复制代码

rpm 包

linux 分为源码包和rpm 包。源码包须要咱们本身编译,而后安装,自由度比较高。rpm 包是厂商编译好的二进制包,能够类比 windows .exe 包。但 rpm 包安装的时候须要处理依赖关系。所以,yum 管理 rpm 包诞生。yum 通常须要联网,有的时候,部署的服务器没有网络,咱们能够经过挂载光盘或者 U 盘搭建本地 yum 源使用。

rpm 包安装的好处之一是咱们不须要配置环境变量了。包已经内置处理好了。

好比咱们安装 jdk ,经过官网下载 jdk rpm 包。

安装 rpm 包

# 安装 rpm 包
rpm -ivh 包全名
复制代码

查询安装的 rpm 包

rpm -qa | grep 包名
复制代码

卸载 rpm 包

rpm -e 包名
复制代码

查询文件属于哪一个 rpm 包

rpm 也提供了查询文件属于哪一个包,咱们能够做为判断这个文件是否木马的依据之一。

rpm -qf 系统文件名
复制代码

校验 rpm 包安装以后作了哪些修改

有的时候咱们安装包以后,想知道更改了哪些修改文件。rpm 也提供了能力查询。

rpm -V 包名
复制代码

查询 rpm 包中的资源会安装到哪里

有的时候,咱们想知道 rpm 会将包安装到哪些位置也能够作到

# 查询包安装位置
rpm -ql 包名
复制代码

提取 rpm 中的文件

可能会存在这样的事情,咱们把 java 这个执行文件删掉了。但又不想从新安装jdk。咱们能够从对应的 rpm 个包中,导出具体的执行文件。或者对应的系统命令 ll。

# 从 rpm 包中提取丢失的文件
rpm2cpio jdk-13.0.1_linux-x64_bin.rpm |cpio -idv ./usr/java/jdk-13.0.1/bin/java
复制代码

上述命令至关于解压 rpm 包,当 cpio -idv 跟某个文件的路径。即提取制定的文件。

# 至关于解压 rpm 包到当前相对路径下
rpm2cpio jdk-13.0.1_linux-x64_bin.rpm |cpio -idv
复制代码

上述包没有别的依赖,操做还挺简单,当遇到如下状况: 你安装 mysql-server ,mysql-server 依赖 client 包,client 包依赖common包,还以lib 包。当你 rpm 安装的时候不停报错,而后你不停安装不存在的依赖包。想一想都挺烦的,因此 yum 解放了咱们的双手啊。

yum 安装

国外的 yum 源速度较慢,使用阿里云提供了yum 源镜像,速度挺快,给阿里点赞。

修改 yum 源为阿里镜像

# 备份 yum 配置文件,便于出错后能够恢复 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里 yum 源 wget -O /etc/yum.repos.d/CentOS-Base.repo mirrors.aliyun.com/repo/Centos…

复制代码# 清除 包的缓存,并加载阿里镜像包缓存 yum clean all yum makecache 复制代码

只需下载指定的系统的配置就好,阿里已经帮咱们配置好了。

yum 安装

# 列举全部包 yum list

# 搜索包 yum search

# 安装包, -y 免于确认是否安装 yum -y install 包名

# 升级包,必定要指定包,否则 linux 全局更新 yum -y update 包名

复制代码# 卸载包,尽可能不卸载 yum -y remove 包名 复制代码

搭建本地 yum 源 和安装某个程序的源。留到安装 mysql 。

Mysql 安装

Centos 7 默认不提供 Mysql 做为数据库。

一、下载官方提供的 Mysql yum 源。

缺点就是,从这个 yum 源下载的 rpm 包速度比较慢。

# 安装 yum repositoty
sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
复制代码

没有安装 mysql yum reposity 时,本地 yum 配置。

执行完命令以后,增长了 mysql 的 yum 源,可是这些资源都是国外的,下载有点慢

# 清除旧包的缓存,并加载新 yum 源缓存
yum clean all
yum makecache
复制代码

查询 mysql-community-server

yum list | grep "mysql.*-community.*server"
复制代码

而后安装 mysql-community-server

# 速度有点慢
yum install mysql-community-server
复制代码

搭建本地 yum 源安装 Mysql

服务器下载 Mysql 的全部依赖包

建立 /mnt/local/packages

将下载的压缩包,解压缩 /mnt/local/packages 下。

生成 yum 源信息

cd /mnt/local
createrepo .
复制代码

运行命令,生成 yum 源信息

在服务器中配置 yum 源

# 生成 yum 配置文件 sudo touch /etc/yum.repos.d/CentOS-local.repo

# CentOS-local.repo 的内容以下

# local-mysql 为 yum 源名称,当使用 yum list 的时候能够看到它 [local-mysql] name=local_mysql_diy

# yum 源所在位置 baseurl=file:///mnt/local/

# 配置不检查认证 gpgcheck=0

# 使 local-mysql 这个配置生效 enabled=1

复制代码# 秘钥位置 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 复制代码

刷新 yum 源

yum clean all
yum makecache
复制代码

安装 Mysql

yum install mysql-community-server
复制代码

启动 Mysql

# 启动 mysql sudo systemctl enable mysqld sudo systemctl start mysqld

# 查看 mysql 运行的状态 sudo systemctl status mysqld

复制代码# 查询初始化密码 sudo grep 'temporary password' /var/log/mysqld.log 复制代码

# 为避免 navicat 不能链接 mysql,修改 /etc/my.cnf
[mysqld] 
default-authentication-plugin=mysql_native_password
复制代码

修改密码

# 登陆 mysql
mysql -u root -p123456
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@2020';
复制代码

mysql 建立用户

# 建立用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password';

# 建立数据库 CREATE DATABASE sonar复制代码 CHARACTER SET 'utf8mb4';

复制代码sonar复制代码# 受权 # select,insert,update,delete 对表数据操做 # 对表操做 create,alter,drop grant select,insert,update,delete,create,alter,drop on sonar.* to 'sonar'@'%'; 复制代码

Mysql 8.0 忘记密码

# 编辑配置文件, vim /etc/my.cnf

# [mysqld] 下添加 skip-grant-tables

# 从新启动 mysql systemctl restart mysqld

# 免密码登陆 mysql mysql

复制代码复制代码

# 选择数据库
use mysql;
# 查看用户信息
select host, user, authentication_string, plugin from user;
# 修改密码为空
update user set authentication_string='' where user='root';
复制代码
# 退出 mysql
# 去掉 /etc/my.cnf [mysqld] 中的 skip-grant-tables
# 从新启动 mysql
systemctl restart mysqld
# 登陆 mysql

# 为避免 navicat 不能链接
ALTER USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'Sonar@2020';
复制代码

其余命令

查看端口占用

netstat -anp|grep 8080
复制代码
相关文章
相关标签/搜索