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
複製代碼
相關文章
相關標籤/搜索