配置IP地址
查看IP地址:ifconfig
進入:vim /etc/sysconfig/network-script/ifcfg-網卡名
ONBOOT=yes
BOOTPROTO=yes
在最后增添:IPADDR=IP地址
NETMASK=子網掩碼
ifup 網卡名(重啟網卡)
ping IP地址 即可
iptables -L 查看防火墻
iptables -F 關閉防火墻
網路配置基礎
一、網路配置
1、主機名
查看:hostname
臨時修改:hostname FQDN(完全合格域名)
永久修改:/vim/etc/sysconfig/network
NETWORKING 啟動IPv4的主機名設定
HOSTNAME 更改主機名
默認主機名:localhost.localdomain
NetBIOS協議:網路基本輸入/輸出系統
2、網卡
查看:ifconfig
臨時修改:ifconfig ech1 172.16.1.100 netmask 255.255.255.0
ONBOOT=no 網卡是否啟動
NM_CONTROLLED=yes 網卡守護行程 (service NetworkManager stop)
BOOTPROTO=static 網路引數獲取方式 (static手動配置dhcp自動獲取方式)
IPADDR=172.16.1.2 IP地址
NETMASK=255.255.0.0 子網掩碼
重啟網卡:service network restart
禁止:ifdown eth0(網卡名)
啟用:ifup eth0(網卡名)
3、網關和路由
查看:route -n
臨時修改:
route add default gw 192.168.3.1 添加網關
route add -net 192.168.2.0/24 gw 192.168.3.1 添加路由
route del default gw 192.168.3.1 洗掉網關
route del -net 192.168.2.0/24 洗掉路由
永久修改:
進入:vim /etc/sysconfig/network-scripts/ifcfg-eth1
添加:GATEWAY=網關
4、DNS服務:將域名轉換成IP地址
進入:vim /etc/sysconfig/network-scripts/ifcfg-eth1
添加:DNS1=
DNS2=
查看:nslookup
5、本地決議檔案(主機映射)
修改:vim /etc/hosts
IP 域名
192.168.1.3 www.yyy.con
(回環:檢測自己的網卡是否能運行)
及時生效,無需重啟
hosts和DNS的區別
系統優化使用/etc/hosts檔案中內容決議域名
/etc/hosts檔案僅對本主機生效
6、測驗命令
ping 用來測驗兩臺主機之間的連通性
-c 指定ping的次數
-i 指定ping的時間間隔
w 指定等待時間
nestat 列出軟體詳細資訊串列
-a 顯示ping的次數
-n 數字形式顯示地址
-p 顯示PID
-t 顯示TCP相關埠資訊
-u 顯示UDP相關埠資訊
-l 顯示詳細串列資訊
traceroute (追蹤命令) 格式:traceroute 目標主機
測驗從當前主機到目的主機之間經過的網路節點
追蹤到目標網路經過多少設備
arp(地址決議協議)
將IP地址決議為MAC地址
nmape
二、遠程管理
1、概述
SSH協議:為客戶機提供安全的shell
服務名:sshed
埠號:22
組態檔:
服務器端/etc/ssh/sshd_config
作用:提供安全加密的與遠程連接
2、配置項
listenaddress 監聽地址
permitrootlogin 是否允許root用戶遠程登陸
permitemptypasswords 是否允許空密碼登錄
maxauthtries 最大登錄次數
logingracetime 登錄凍結時間
身份驗證方式:
PasswordAuthtication 用戶名/密碼驗證,默認方式
PubkeyAuthentication yes 密鑰對
AuthorizedKeysFile .ssh/authorized_keys 密鑰庫
3、功能模塊
ssh 用戶名 @IP地址 遠程安全登錄
scp 檔案名 用戶名 @IP地址:目的地(目錄) 遠程安全復制檔案
ssh -p 埠號 用戶名@IP地址
scp 安全檔案復制
下載:
scp -P 埠號 用戶名@IP地址:/目錄 /本地檔案
上傳:
scp -P 埠號 本地檔案 用戶名@服務器地址:/服務器目錄
sftp 安全的FTP傳輸
sftp --oPrt=埠號 用戶名@服務地址
上傳:put
下載:get
4、密鑰對驗證
1、在客戶端生成密鑰對,公鑰和私鑰
2、把公鑰檔案上傳給服務器
3、在服務器端將公鑰檔案匯入到密鑰庫里
4、測驗
步驟:
1、在客戶機和用戶機各創建一個用戶,設定密碼,并都切換至用戶
2、在客戶機上用ssh-keygen -t rsa命令生成密鑰對
3、將公鑰(id_rsa.pub) 用scp id_rsa.pub 用戶名@服務器地址:/服務器目錄 命令上傳到用戶機
4、到用戶機上創建用戶家目錄
5、進入vim /etc/ssh/sshd_config 更改:PasswordAuthtication 用戶名/密碼驗證,默認方式
PubkeyAuthentication yes 密鑰對
6、將公鑰檔案匯入剛剛創建的目錄中
7、到從服務器向主服務器,遠程登陸檢測
一、DHCP服務
1、DHCP 動態主機控制協議
2、DHCP的作用: 分配網路引數,提供集中管理
提高地址利用率,解決IP地址不夠用的問題
減少管理和維護成本
3、DHCP的優勢:
小型網路,可以使用路由器/交換機;中大型網路,使用服務器
路由器/交換器的DHCP功能是附加功能,若因流量大,導致路由器/交換器功能失效,則得不償失
服務器配置更加簡單、高效
服務器遷移有優勢
4、DHCP的原理
①、客戶端尋找服務器
客戶端廣播發送DHCPdiscover包(群播),尋找DHCP服務器
客戶端資料包的源地址為0.0.0.0,目標地址為255.255.255.0(MAC地址)
客戶端等待一秒無回應,發送第二次,9秒無回應,發送第三次,13,16
②、服務器提供地址資訊
監聽到客戶端的包,用MAC地址,回應客戶端DHCPoffer包(回應,單播)
offer提供IP地址、租約資訊等簡單引數
③、接受并廣播
客戶端接受最先到達的offer包
客戶端向網路發送request包(廣播自己已有地址,請求所有網路引數)
request告知網路中所有服務器,該客戶端接收了那個offer
發送檢測包,檢測該IP地址是否有人使用,若占用,則拒絕該offer,重新discover
④、服務器確認
接受客戶端的request包后,向客戶機發送DHCPack包,包含所有的網路引數
⑤、客戶端重新登錄
不需要SDHCPdiscover,直接發送DHCPrequest,請求之前的引數
⑥、服務器確認
可以使用,則分配DHCPask包確認網路引數
不可使用,則分配DHCPnack拒絕客戶端,客戶端重新發送DHCPdiscover
⑦、更新租約
客戶端在租約一半時,向服務器發送DHCPrequest包,請求更新租約
客戶機在到一半時(75%)發送DHCPrequest包,請求更新
二、配置
1、基本配置
軟體:dhcp
埠:UDP67 接受下級客戶端的分配請求
UDP68 向客戶端發送請求成功或失敗的結果
服務名:
dhcpd DHCP的主程式
dhcprelay DHCP中繼服務
組態檔:
/etc/dhcp/dhcpd.conf 主組態檔
/etc/sysconfig/dhcrelay 中繼組態檔
/usr/share/doc/shcp-4.1.1/dhcpd.conf.sample 主組態檔模板
2、配置項
subnet 網段宣告
host 主機宣告
中繼配置
跨網段分配IP地址
一、DNS
1、概念
DNS 域名系統
2、作用
域名決議
3、決議方式
正向決議:
域名決議成IP地址
反向決議:
IP地址決議成域名
4、域名
baidu.con 域名
www.baidu.com FQDN
5、組織
IANA
ICANN 互聯網名稱與數字地址分配機構
6、域名的發展
①、域名通過維護檔案服務器上的hosts檔案決議
②、通過計劃任務,定時下載hosts
③、搭建域名服務器
④、搭建分布式存盤
缺點:
相應時間長,管理相對麻煩
優點:
管理高效,命名簡單
7、域名分類
www.zol.com.cn.
最右邊為根域、一級域名、二級域名、三級域名、主機名
一級域:組織域,國家域
8、作業方式
遞回查詢:
必須使用準確的查詢結構回復客戶機
若DNS服務器本地沒有存盤該資訊,那么該服務器會詢問其他服務器
并將結果回傳給客戶機
迭代查詢:
服務器會向客戶機提供其他能夠決議請求的DNS服務器地址告訴客戶機
另一臺DNS服務器地址
客戶機在向DNS服務器發送請求,依次回圈直到回傳結果
9、服務器型別
主域名服務器
從域名服務器
快取域名服務器
分離決議域名服務器
二、配置
1、軟體:bind
2、服務名:named
3、埠:
UDP 53 資料通訊(域名決議)
TCP 53 資料同步(主從復制)
4、組態檔:
主組態檔:/etc/named.conf 服務器運行引數
區域檔案:/etc/named.rfc1912.zones 當前DNS服務器所決議的區域配置
資料檔案:/vat/named/xx.xx 域名和IP地址對應關系
正向決議資料檔案
反向決議資料檔案
5、配置項
SOA 起始授權記錄
6、從服務器的壓力
減輕主服務器的壓力
從服務器拷貝檔案
一、FTP
1、概述
FTP:檔案傳輸協議,實作檔案共享
NFS:網路檔案系統,(可檔案共享)
SMB:服務資訊塊,(可檔案共享)
2、鏈接型別
控制鏈接(命令連接):
用來發送FTP的命令資訊 TCP21
特點:客戶端發送請求,服務器回應
若沒有設定超時時間,那么控制連接將一直保持
資料連接:用來上傳下載資料 TCP20
特點:按需打開,按需關閉,必須與命令連接相關聯
有可能同時出現多條資料連接,如mget
3、作業模式:
主動模式(主動發送給客戶機)
服務器端:
控制連接:21埠
資料連接:20埠
被動模式(等客戶機自己來拿)
客戶端:
控制連接:21埠
資料連接:隨機埠(1024-65535)
4、驗證型別:
匿名用戶:不需要用戶名和密碼
本地用戶:即系統用戶,通常全程是明文傳輸,因此特定系統用戶
應該禁止使用本型別
虛擬用戶:通過虛擬出來的用戶名登錄,配置相對復雜,通過映射
系統用戶進行登錄
二、配置
1、軟體
服務器端:
proftp、pureftp、vsftpd(體積小,安全性,本機自帶)
server-U、IIS、fillezilla
客戶端:
ftp、lftp
gftod、flashFXp、cuteftp
2、服務名:vsftpd
3、主目錄:/etc/vsftpd
4、主組態檔:/etc/vsftpd/vsftpd.conf
5、用戶控制檔案:/etc/vsftpd/user_list
/etc/vsftpd/ftpusers
6、配置項
三、實驗
匿名用戶
用戶名:fig或anonymous
230 Login successful 登錄成功
550 Permission denied 權限拒絕
553 Could not create fille 不能創建目錄
操作權限由FTP權限和目錄權限組成,
默認目錄:
登錄目錄:/var/ftp
操作目錄:/var/ftp/pub
/var/ftp自定義目錄
FTP權限:anonymous_enable=YES 啟用匿名用戶
anon_upload_enable=YES 允許匿名用戶上傳權限
anon_nkdir_write_enable=YES 允許創建目錄
anon_other_write_enable=YES 允許其他寫入操作(重命名,洗掉)
2、本地用戶
用戶名:系統用戶名
默認目錄:登錄用戶的家目錄
FTP權限:local_enable=YES 啟用本地用戶
local_umask=022 本地用戶反碼
local_root=/目錄 更改默認目錄
chroot_local_user=YES 禁錮家目錄 chroot_local_user=YES chroot_list_enabble=YES 不能同時打開
chroot_list_enabble=YES 禁錮家目錄,不能切換用戶(第97行,必須把99行也開啟)
chroot_liat_file=/etc/vaftpd/chroot_list 該檔案中的用戶不能更改目錄(將用戶添加其中) /etc/vaftpd/chroot_list目錄需要自己創建
userlist_enable=YES
userlist_deny=YES 拒絕userlist檔案中的用戶登錄FTP服務器
userlist_enable=YES
userlist_deby=NO 僅允許user_list檔案中的用戶登錄FTP服務器
ftpusers 拒絕ftpusers檔案中的用戶登錄FTP服務器,及時生效,無論user_list如何設定
本地用戶使用被動模式
pasv_enable=YES 啟用被動模式
pasv_min_port=2001 最小從哪開始
pasv_max-port=2005 最大到哪截至
3、其他配置項
wriye_anable 是否啟用寫入權限
download_enable 是否允許下載
max_clients 限制并發客端連接數
max_per_ip 限制同一個IP的并發數量
dirmessage_enable 允許配置目錄提示資訊
idle_session_timeout 設定空閑連接超時
ftpd_banner FTP的歡迎提示資訊
banner_file FTP的歡迎提示檔案
4、虛擬用戶
1、創建虛擬用戶
2、創建虛擬用戶映射的系統用戶
3、建立支持虛擬用戶的PAM認證檔案
4、啟用虛擬用戶
5、為不同虛擬用戶創建獨立組態檔
5、
一、概述
1、檔案共享
NFS 網路檔案系統
SMB 服務資訊塊
Netbios 網路基本輸入/輸出系統 API 介面
SMB更改為CIFS 公共互聯網檔案系統
SMB-->samba
2、SAMBA特點
跨平臺
支持在線編輯,無需下載
使用SMB和CIFS協議
二、配置
1、服務
nmbd:通過netbios協議,實作計算機名的決議 UDP137 UDP138
smbd:實作檔案共享 TCP139 TCP445
2、軟體
samba
3、主目錄
/etc/samba
4、主組態檔
/etc/samba/smb.conf
5、配置項
security 安全級別
share 不需要提供用用戶名/密碼
user 需要提供用戶名/密碼,由本地samba服務器驗證
server 需要哦提供用戶/密碼,可指定其他主機或另一臺主機samba服務驗證
domain 需要提供用戶/密碼,由域控制器進行身份用驗證
secueity=share
三、實驗
1、匿名用戶訪問
[share]
comment 描述資訊
pash 真實路徑
public 允許所有人訪問
smbclient -L // 服務器地址 查看
smbclient // 服務器地址/共享名 登錄
2、本地用戶訪問
security=user
[share]
comment 描述資訊
path 真實路徑
read only 所有人只讀訪問
useradd 創建系統用戶
smbpasswd 管理samba用戶
a 添加
x 洗掉
d 禁用
e 啟用
pdbedit -L 查看samba用戶串列
smbclient -U zhangsan -L // 192.168.1.250
smbclient -U zhangsan // 19255.168.1.250/zhangsan
3、Windos訪問
4、權限控制
read only 設定只讀訪問
writable 設定寫入權限
write list 設定寫入串列
valid users 設定合法用戶
browseable 是否網路可見
5、訪問控制
hosts allow 允許個別,拒絕所有 192.168.1.1 192.168.1.
hosts deny 允許個別,拒絕所有
不能同時啟用,只能啟用一個
6、用戶映射
vim /etc/samba/smbusers
zhangsan = zhaosi
username map = /etc/samba/smbusers
7、映射網路驅動器
LAMP平臺
一、概述
1、LAMP
L Linux 提供穩定的底層平臺
A apache 網站服務器,提供網站服務
M mysql 資料庫服務器,提供資料庫服務
P PHP 網站開發語言,提供動態網站程式決議
2、LAMP架構
單層架構、雙層架構,三層架構
3、網站架構
動態網站apache
靜態網站nginx
二、LAMP平臺
1、環境
①、編譯環境
gcc
②、關閉RPM服務
service httpd stop(關閉)
chkconfig htttpd off(關閉開機自啟)
service mysqld stop(關閉)
chkconfig mysqld off(關閉開機自啟)
③、關閉防火墻,seLinux
service iptables stop
chkconfig iptables off
setenforce 0
vim /etc/sysconfig/selinux
selinux=disable
④、關閉不必要的服務
⑤、硬碟空間
2、安裝
①、將lamp.iso加載進光驅,將其內容拷貝至/usr/src中,然后將光碟
更換為系統盤,配置yum
一、概述
1、協議
http:超文本傳輸協議
html:超文本表示語言
url:統一資源定位
列如:http//www.jx.com:80/index.html
2、安裝
源代碼
RPM
3、相關檔案
主組態檔
源代碼:/usr/local/apapche2/etc/http.conf
/usr/localapache2/etc/extra/(補全)*/conf
RPM:
/etc/htttpd/conf/httpd.conf
默認首頁位置:
源代碼:/usr/local/apapche2/htdocs/
RPM:/var/www/html
日志保存位置:
源代碼:/usr/local/apapche2/logs
RPM:/var/log/httpd
源代碼主組態檔:/usr/local/apapche2/etc/http.conf中各段意思
31行 ServerRoot “/usr/local/apache2” Apache安裝路徑
52行 Listen 80 Apache監聽埠號
66行 LoadModule 加載模塊(模塊可拆卸)
150行<IfModule unixd_module> 對某一個模塊加一些選項,引數
181行ServerAdmin 管理員郵箱
190行ServerName 指定當前網站域名
197行<Directory> 對某一個目錄設定訪問規則
AllowOverride none 權限開關
Roquire all denied 拒絕所有人訪問
215行<Directory "/usr/local/apache2/htdocs"> 對首頁檔案的訪問區域
228行Options Indexes FollowSymLinks 設定目錄的選項
249行Require all granted 允許所有人訪問
247行<IfModule dir_module> 目錄模塊
DirectoryIndex 宣告首頁檔案的默認名
255行<Files ".ht*"> 檔案配置區(以.ht開頭的檔案是權限檔案)
266行ErrorLog “logs/error_log" 錯誤日志
295行Customlog ”logs/access_log"正確日志
273行LogLevel warn 日志級別
275行<IfModule log_config_module> 日志格式
304行<IfModule alias_module> 別名模塊(給一個較長的名字起一個較短的名稱)
二、應用
1、目錄與權限
indesxes 若首頁目錄中,找不到首頁檔案,則列出該目錄下所有內容
FollowSymLinks 允許首頁檔案是鏈接檔案
2、訪問控制
僅允許192.168.1.0/24網段的主機訪問
<requireall>
requireall all granted
requireall ip 192.168.1.0./24
</ requireall>
僅拒接192.168.1.0/24網段主機訪問
<requireall>
requireall all granted
requireall not ip 192.168.1.0/24
</requireall>
3、身份認證
authname 驗證資訊
authtype 驗證型別
authserfile 驗證檔案
require vaild—user 合法用戶
htpasswd -c 驗證檔案路徑 用戶名 添加驗證用戶
htpasswd -m 驗證檔案路徑用戶名 追加驗證用戶
4、虛擬主機
定義:在一臺物理服務器上,構建多個網站服務,并同時運行,互不干擾
基于域名
<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/webl"
ServerName web1.jx.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot”/usr/local/apache2/htdocs/web2“
ServerName web2.jx.com
</VirtualHost>
基于IP
創建虛擬IP ifconfig eth0:0 192.168.1.250 netmask 255.255.2555
基于埠
listen 8000
5、個人主頁
定義:在網站服務器上,為用戶單獨分配一個頁面
6、地址重寫
LNMP
一、概述
1、區別
①apache
模塊化、功能較全
對動態網站支持較好,與PHP兼容性好
地址重寫與加密功能強大
配置相對復雜
同步阻塞型應用
②nginx
模塊相對較少,高性能模塊出色
對靜態網站支持較好
反向代理與負載均衡功能強大
配置相對簡單
異步非阻塞型應用
訊息通信機制:
同步
發出“呼叫”時,沒有結果之前,該呼叫就不回傳
一旦回傳,即可得到回傳值
異步
呼叫發出以后,該呼叫就直接回傳,沒有回傳結果
程式等待呼叫結果的狀態
阻塞
呼叫結果回傳之前,當前執行緒會被掛起,只有得到結果
之后才會回傳
非阻塞
不能立刻得到結果之前,該呼叫不會阻塞當前執行緒
2、網站的請求流程
①用戶向網站發起訪問,請求首先到達網卡上,由網卡把資料傳遞到內核
②這個請求資料到達內核之前,由內核將請求資料解封裝,得到
請資料,得知請求的是網站服務器,將資料發給網站服務器,
③網站服務器收到請求資料之后,發現客戶端要求的是index.html的首頁檔案
就會向內核發起請求
④內核發現,網站要訪問一個頁面檔案,這個頁面檔案在硬碟里存放、
內核通過驅動程式就會向硬碟發起訪問
⑤內核從硬碟中取回想要的檔案,并且存放在快取中,然后通知網站網頁檔案
已經準備好
⑥網站的執行緒就會向內核發起訪問,將內核快取中的首頁檔案,放到網站中的快取區域中
⑦然后網站會向用戶進行回應,并且將首頁檔案交還給內核,告訴內核就使用這個檔案回復客戶端,
內核收到后,將資料進行封裝,從網卡發送給用戶,
3、總結
若是處理靜態頁面,尤其是高并發場景,適合使用nginx
若是處理動態頁面,尤其是追求穩定性,則適合使用apache
4、LNMP
a、nginx作用
①、充當網站服務器
nginx轉發給后端的apache處理動態頁面
通過PHP-FPM模塊
②、充當代理服務器
正向代理
反向代理
processes 核心數
connections 并發數
核心數*并發數=最大訪問量
mime.types 應用程式的組態檔
keepalive_timeout 連接超時時間
sendfile on 下載
一、Nginx
1、配置
配置項 nginx apache
虛擬主機 server virtualhost
監聽埠號 listen listen
主機名稱 server_name servername
配置區域 location directory、file
首頁檔案位置 root documentroot
默認首頁名稱 index directoryindex
認證資訊 auth_basic、auth_basic_user_file
authname、authype
訪問控制 允許 allow required all granted
拒絕 deny required all denied
2、虛擬主機
一、資料同步
1、資料備份:cp、mv、tar、dd、mount
2、RSYNC
增量的備份工具
同步指定目錄及子目錄的內容,還可保留檔案屬性
3、型別
SSH
RSYNC
客戶端-->發起端
服務器-->同步源
二、搭建同步源
1、基于SSH的同步源
同步源:
創建測驗目錄
創建測驗檔案
創建測驗用戶
設定權限
發起端:
創建同步目錄
創建測驗檔案
測驗
下行同步:
rsync -avz 服務器用戶@服務器IP地址
:服務器目錄/檔案 /本地路徑
上行同步:
rsync -avz /本地路徑/本地檔案 服務器用戶
@服務器地址:服務器目錄
2、基于RSYNC的同步源
同步源:
創建測驗目錄
創建測驗檔案
創建組態檔
創建密碼檔案
開啟服務
發起端:
創建同步目錄
創建測驗檔案
測驗
rsync -avz 服務器用戶@服務器地址::共享名/ 本地目錄
rsync -avz rsync://服務器用戶@服務器地址/共享名 /本地用戶
三、免密碼驗證
1、基于SSH的同步源
ssh-keygen -t rsa
ssh-copy-id 服務器用戶@服務器地址
2、基于rsync的同步源
export RSYNC_PASSWORD=123456
四、inotify
inotifywait
-m 持續監控
-r 遞回
-q 簡化輸出
-e 監控的事件型別 modify create delete move
一、概述
1、郵件角色
MTA 郵件傳輸代理 服務器中接受郵件 sendmail、
exchange、postfix
MUA 郵件用戶代理 替用戶收發郵件,outlook、Foxmail
MDA 郵件分發代理 將收到的郵件保存至郵箱 maildrop
MRA 郵件檢索代理 替用到郵箱收郵件 dovecot
2、郵件認證
開放式中繼(openrelay)
SASL 簡單驗證安全層
3、協議
SMTP 簡單郵件傳輸協議 TCP25發郵件的埠 SMTOPS 465
POP3 第三版郵局協議 TCP110 POP3S 995
IMAP4 第四版互聯網郵件訪問協議 TCP143 IMAP4S 993
POP3將服務器的郵件下載到本地處理
IMPA4與服器互動后,在服務器端處理
4、郵件地址
郵件用戶@郵件域
mail.jx.com
[email protected]
二、郵件服務器
1、MTA
sendmail
qmail
postfix
2、配置
主目錄:/etc/postfix
組態檔:master.cf
main.cf
myhostname 郵件服務器主機名
mydomain 郵件域
maorigin 設定允許發送郵件的用戶的郵件域
mydestination 設定允許接收郵件的用戶的郵件域
home_mailbox 設定郵箱目錄
3、測驗
發郵件
telnet mail.extmail.org 25
helo mail.extmail.org
mail from:發件人地址
rcpt to:收件人地址
data
郵件內容
. 內容結束
quit
收郵件:
telnet mail.extmail.org 110
user lisi
pass 123
list 顯示郵件串列
retr 查看指定郵件內容
【資料庫】
一、概述
1、資料庫
資料庫(database)是按照資料結構來組織,存盤和管理資料的倉庫
2、資料庫管理系統
a、定義
將能夠操控和管理資料庫的大型軟體,稱之為資料路管理系統,
通過它創建、使用和維護資料庫,保證資料庫中資料的安全性和完整性,簡稱DBMS(database management system)
3、型別
mysql、oracle(類Linux)、SQL Server、Redis、mongoDB等
關系式資料庫、mysql
SQL Server 閉源、對Linux兼容性不好,適合安裝在Windows系統上
Oracle 閉源、價格昂貴、對Linux兼容性好、不適合用于中小型企業中
mysql 開源、靈活、版本眾多,更具有代表性,主要應用于中小型企業
4、資料庫與檔案系統的區別
a、資料冗余和不一致性
b、資料訪問難度
c、資料格式
d、完整性
e、并發訪問
f、安全性問題
5、資料庫模型
a、層次模型
按照層次結構的形式組織資料庫資料的模型
缺點:資料冗余
典型:IBM IMS資料庫
b、網狀模型
按照網狀結構的形式組組織資料庫資料的模型
缺點:資料量增加,網狀結構越發復雜,后期維護成本過高
典型:美國資料庫系統語言協會 DBTG資料庫
c、關系模型
按照行和列結構,組成資料庫資料的模型
以關系或表作為描述資料的基礎,擁有嚴格的數學理論基礎
以關系模型構建的資料庫關系管理系統稱之為關系資料庫關系系統,簡稱RDBMS
6、資料模型
陳品山 物體關系建模 陳氏表示法,陳氏模型 也稱之為E-R模型
關系三要素:物體、聯系、屬性
物體:資料物件,客觀存在的事物
聯系:多個物體之間的關聯關系
屬性:物體的某一個特性
7、SQL陳述句
結構化查詢語言
【埃德加 柯德 關系式資料庫之父】
【唐-錢伯林 SQL陳述句之父】
1979年,甲骨文的ORACLE公司推出關系式資料庫產品 ORACLE
1980年,IBM推出關系式資料庫SYSTEM/38
1983年,IBM推出DB2
ANSI 美國國家標準協會,推出統一SQL標準
8、SQL型別
SDL 資料操控語言 操作資料庫中的資料
如:select、insert、update、delete
DDL 資料描述語言 建立資料庫、定義資料關系
如:create、alter、drop等
DCL 資料控制語言 控制資料庫組件的權限
如:grant、revoke
一、資料庫結構
1、資料庫結構
a、檔案的邏輯架構
上層:檔案
底層:二進制形式的資料
中間層:檔案系統
b、資料庫的邏輯架構
上層:資料表
底層:資料檔案
中間層:存盤引擎
2、存盤引擎
a、概念
定義:存盤資料、保存資料、更新資料等的實作方法
b、musql的存盤引擎
1、MyISAM
特點:Mysql的默認存盤引擎,最為常用,較高的寫入、
查詢速度,不支持事務(行級鎖,頁級鎖)等功能
事務:SQL陳述句的批處理(要么去全部成功,要么全部失敗)
鎖:
行級鎖:對單獨一行加鎖,效率低,沖突少 需要:INNQDB 存盤引擎
表級鎖:鎖定整張表,效率高,沖突少 需要:MyISAM 存盤引擎
頁級鎖:鎖定相鄰的多行記錄,折中方案 需要: DBD 存盤引擎
約束:
域約束:約定的資料的型別
外鍵約束:通過其他資料進行約束的型別
索引:對資料庫表中一列或多列的值進行排序的一種結構,
使用索引可快速訪問的特定資訊,
2、InnoDB
MyISAM的升級版,提供了事務、行級鎖,外鍵約束等功能
3、Memory
只存在于記憶體中,通過hash(散列)來存取資料,速度最快,
通常無法持久保存,
3、資料的存盤和查詢
a、存盤管理器
專門的存盤件,通過DDL(資料描述語言)創建表的結構,然后通過
DML(資料操控語言)保存SQL陳述句的處理結果
權限及完整性管理器
設定存盤權限
事務管理器
保證資料的原始狀態
檔案管理器
保證資料檔案和資料庫資料的對應關系
快取區管理器
管理緩沖空間
b、查詢管理器
專門查詢組件,負責接受用戶的查詢請求、并且將查詢請求轉交
給存盤管理器,實作資料管理去的組件
DDL、DML解釋器
同于理解分析DDL和DML的操作
查詢執行引擎
具體執行操作的組件
4、作業模式
a、資料庫后臺
Mysql是單行程多執行緒的應用程式型別
1、守護執行緒
后臺默認執行的執行緒,不需要和用戶互動,防止資料丟失
2、應用執行緒
資料庫處理用戶請求的執行緒,用戶推出后,終止該執行緒
b、資料庫性能
1、垂直擴展
換更好的硬體
2、快取
memcache、redis、MongoDB
3、執行緒重用
用戶退出,不撤銷執行緒
c、資料庫缺點
SMP支持不夠
同一個任務只能由一個CPU完成
Mysql版本
1、版本
社區版:免費、沒有技術支持、沒有技術責任方
企業版:收費、有售后支持、更穩定,可靠
集群版:基于集群需求,添加存盤引擎、集群管理器等新功能
SO7:默認MariaDB
2、安裝
mysql:客戶端鏈接工具
mysql-server:Mysql資料庫主程式
3、配置
服務名:mysqld
段口號:TCP 3306
組態檔:/etc/my.cnf
二、操作
1、結構
DBMS 資料庫管理系統
database 資料庫
table 資料表
data 資料記錄
2、登錄
命令:mysql (進入資料庫)
資料庫每條命令,必須以分號結尾
查看資料庫命令:show databases;
u 指定登錄用戶
h 指定登錄主機
P 指定登錄埠號
p 指定登錄密碼
3、創建密碼
mysqladmin -uroot(root可以替換用戶)password '密碼'
4、創建用戶
登錄資料庫
在 create user '用戶'@’登錄地址’indentified by ’密碼’;
create user‘zhangsan‘@’localhost‘identified by ’123456‘;
create user‘lisi‘@’%‘identified by ’123456‘;
%代表僅遠程登錄
5、修改普通用戶密碼
修改當前用戶密碼:set password = password(“密碼”);
修改指定用戶密碼:set password for ’zhangsan‘@’localhost‘=passwd(“密碼”)
6、修改管理員密碼
service mysql stop 停掉mysql服務
修改主組態檔
vim /etc/my.cnf
添加skip-grant-tables
service mysql start 啟用資料庫
進入資料庫
強制覆寫掉密碼并修改密碼
update mysql.user set passord=password('123')where user=’root‘;
將組態檔中的選項洗掉
vim /etc/my.cof
洗掉:skip-grant-tables
重啟資料庫服務
service mysql restart
登錄,測驗
mysql -uroot -p123
三、資料庫的 增刪改查
1、查看
show databases;查看資料庫
use 資料庫名; 進入資料庫
show tables; 查看資料庫中的資料表
insert 插入
select * from 資料 你 表 查看指定資料表中的所有內容
select id from 資料表 查看指定資料表中的內容
select id,name from 資料表 查看指定資料表中的內容
describe 資料表 查看資料表結構
2、創建
命令:create database 庫名; 創建資料庫
create table 資料表名 (欄位1 屬性,欄位2 屬性,···,欄位n);
create table stu (id int, name chare(40));
int 代表整數(非字母)
char 代表字符數
unsigned代表不包含負數
not null 不能為空
null 可以為空
primary key(id)主鍵
insert(插入) into 資料表 values(插入值) (值1,值2.···,值N);
3、洗掉
drop database 資料庫; 洗掉資料庫
drop tablle 資料表; 洗掉資料表
洗掉資料:delete from 表名 where id=值N 洗掉id第9行
delete from 表名 where 欄位 between 值1 and 值2;
4、插入資料
插入一行:insert into 表名 (name,age,info) values (‘a2’,22,’student‘)
插入多行:insert into 表名 (name,age,info) values (‘a2’,22,’student‘),(‘a3’,23,’student‘)
將一個表中的資料匯入另一個資料
insert into stu2 (id,name)select id,name from stu;
5、修改
修改單行:update 表名 set age=26(欄位1=值1),info='dancer’(欄位2=值2) where id=9;(主鍵=值N)
修改多行:update 表名 set age=26(欄位1=值1),where 主鍵(id號)between(位于什么之間) 值1 and 值2
alter 修改資料表
rename 改表名
modify 改屬性
change 改欄位
add 添加欄位
drop 洗掉欄位
first、after 位置
格式:alter table 舊表名 rename 新表名;
格式:alter table 表名 modify name char(20) not null default ‘’;
格式:alter table 表名 change info information char(50)null;
格式:alter table 表名 add birth date; 添加欄位
格式:alter table * from drop 表名 洗掉欄位
格式:alter table 表名 add birth date after id; (添加到id之后)
6、權限
grant 授權 al 所有權限 on 資料庫.資料表 to‘用戶’@‘地址’identified by ‘密碼’;
格式:grant all *.* to ‘'zhangsan'@localhost'identified by ‘密碼’;
revoke 取消權限
revoke 取消的權限1,取消的權限2··· on 資料庫.資料表 from ‘用戶’@‘地址’ identified by ‘密碼’
revoke create(創建),drop(洗掉) on *.* from ‘zhagnsan’@localhost‘;
取消張三用戶所以資料庫,資料表,創建,洗掉的權限
show grants for ’zhngsan‘@’localhost
MySQL備份
一、資料備份
1、型別
a、冷備份
關閉服務,備份資料
b、快照備份
LVM
c、邏輯備份(安裝mysqldump自帶)和物理備份
d、商業備份工具
2、mysqldump
備份:
mysqldump -uroot p 資料庫 > 備份檔案
mysqldump -uroot p 資料庫 資料表 > 備份檔案
mysqldump -uroot p --databases > 備份檔案
還原:
mysql -uroot -p 資料庫 < 備份檔案
mysql -uroot -p < 備份檔案
3、musqlhotcopy
備份:
mysqlhotcopy --flusdhlog -u=‘root’-p=’123‘ --regexp=^jx backup
還原:
cp -rp /backup/* /var/lib/mysql/
4、總結
mysqlhotcopy是快速檔案意義上的復制,而mysqldump是SQL陳述句是集合
mysqlhotcopy只能運行在當前主機,而mysqldump可以遠程操作(注意:備份結果還是保存在當前主機)
mysqlhotcopy僅適用于MyISAM引擎,而mysqldump支持MyISAM和InnoDB
二、日志管理
1、查看日志
命令:show global variables like ‘%log%’
2、錯誤日志
作用: 記錄服務器運行程序中的錯誤資訊
服務器啟動和關閉的資訊
從服務器啟動行程時產生的資訊
查看:命令:show global variables like ‘%log_error% (錯誤日志的路徑)
show global variables like ‘%log_warnings% (是否啟用錯誤日志)
3、一般查詢日志
作用:記錄用戶的查詢操作(默認關閉,在資料庫的組態檔打開)
general_log 是否啟動
general_log_file 日志位置
log 全域日志
log_output 記錄型別 file table nane
4、慢查詢日志
slow_query_log 是否啟動慢查詢日志
slow_query_log_file 日志位置
long_query_time 時間設定
log—slow—queries=/var/mysql—slow.log
5、二進制日志
作用:記錄更改資料庫狀態的操縱
log_bin 是否啟動
show binary; 正在使用的二進制檔案
show binlog events in ‘mysqlbin.000001’查看二進制檔案的內容
還原命令:
mysqlbinlog
——start—position
——stop—position
使用檔案大小來還原
——start—datetime
——stop—datetime
使用檔案時間來還原
例如:mysqlbinlog mysqlbinlog.000001 ——start—position 106 ——stop—position 264 | mysql -uroot -p123
列如:mysqlbinlog mysqlbinlog.000001 ——start—datetime ‘2020-04-29 17:59:53’——stop—datetime ‘2020-04-29 17:59:59’| musql -uroot -p123
6、事務日志
7、中繼還原
(自己查詢)
資料庫資訊同步 -多級配置
一、主從配置
作用:從服務器提供備份
二、主主配置
作用:減輕服務器的壓力,并且互為主從,進行備份
三、一主多從配置
作用:提供多臺從服務器進行備份
一、多主一從配置
作用:節省開支,僅通過一臺服務器進行備份
二、讀寫分離
中間件(鏡像)
mysql proxy(官方,適合較少檔案、支持讀寫分離)
atlas(支持讀寫,性能損耗大)
amoeba、cobar
一、概述
1、關系資料庫
2、nosql
全稱:mot only sql
非關系式資料庫
3、nosql的優勢
a、資料庫高并發讀寫的需求
b、海量資料的高效存盤和訪問
c、高擴展性和高可用性
d、其他
4、特點
易擴展
大資料量、高性能
靈活的資料模型
高可用
5、型別
memcache
Redis
mongoDB
hbase
cassandra
二、安裝配置
1、安裝
2、配置
基于鍵值(key)的存盤型別
3、資料型別
string 字串型別
hash 散列
list 佇列
set 集合
zset 有序集合
三、資料操作
1、string
set 設定新建(創建) 如:set a 1
get 查看新建(查看) 如:get a
mset 批量設定新建(同時創建多個) mset a1 1 a2 2 a3 3
mget 批量查看新建 (同時查看多個) gmset a1 a2 a3
若值中間有空格加引號 set a1 ’zhang san‘
setnx 設定新建,若存在,則放棄:若不存在,則創建
getset V??VZ'x'cV?.xc?V.xcv.xc;'v,;'xc,v;lsv,;lsd,v;lsd,vsfld,lsd,fvd,fvds;,lvds,lv',lvf,vglf,vlf,dlv,fdl keys * 查看所有鍵
ttl 查看生存周期(存在時間),-1:表示鍵存在,但沒有設定生存周期
-2:表示鍵不存在
setex 設定生存周期 格式: setex 名 存在時間 值
setrange替換字串 格式: setranfe 名 第幾個字符(第一個為0)替換值
append 追加字串 格式: append 名 追加字符
strlen 查看字串長度 格式:strlen 名
incr 增加1 格式 :incr 名 (每次加一)
decr 減1 格式 :decr 名 (每次減一)
incrby 增加指定數值 格式 :incrby 名 追加值
decrby 減少指定數值 格式 :decrby 名 減少值
2、hash 散列
hset 設定新建
hget 查看新建
hkeys 查看指定鍵對應的所有欄位
hmset 批量設定新建
hmget 批量查看新建
hexists 查看指定鍵是否存在
hsetnx 設定新建,若存在,則放棄:若不存在,則創建
hvals 查看指定鍵對應的所有值
hgetall 查看指定鍵對應的所有欄位和值
hdel 洗掉指定欄位
hlen 查看指定鍵的欄位總數
3、list 佇列
lpush 添加佇列 格式:lpush 名 元素 (lpush l1 1 2 3 4 5 6 7)
lrange 顯佇列內容 格式:lrange l1 0 -1
llen 顯示佇列中的元素的個數 格式:llen l1
lset 替換佇列內容(通過位數) 格式:lsedt 位數 更改元素 (lset l1 2 a)
linsert 插入佇列內容(通過元素) 格式:linsert 名 before(插入)2 “hello”
lpop 洗掉對列中的第一個元素 格式:lpop 佇列名
rpop 洗掉對列中的最后一個元素 格式:rpop 佇列名
4、set 集合
sadd 創建集合 格式:sadd 名 資料 (sadd l1 1 2 3 )
smembers查看集合內容 格式:smembers 名 (smembers l1)
srandmember隨機抽取集合資料 格式:srandmember 名 (srandmember l1)
spop 隨機洗掉 集合資料 格式:spop 名 (spop l1)
scrd 統計集合 中資料的個數 格式:scrd 名 (scrd l1)
sismember查看指定資料是否存在于集合中(回傳值為1:存在 回傳值為0:不存在)格式:sismember 名 資料 (sismember l1 2 )
sinter 查看交集 格式:sinter 名 名 (sinter s1 s2)
sdiff 查看差集
sunion 格式:suniontore
sinterstore查看交集并保存 格式:sinterstore 名 名 新名 (sinterstore s3 s1 s2)
sdiffstore 查看差集并保存
sunionstore查看并集并保存
5、zset有序集合
zadd 創建集合 格式:zadd 名 序號 值 (zadd 1 aa 2 bb 3 cc)
zrange 查看集合 (序號從小到大) 格式:zrange z1 0 -1 withscores
zrevrange查看集合(序號從大到小)格式:zrevrange z1 0 -1 withscores
zrangebyscore查找指定序號范圍內的元素 格式:zrangebyscore z1 2 5 withscores
zcount 查看指定序號范圍內的元素數目 格式:zcount z1 2 5
zcard 查看集合中的元素個數 格式:zcaed z1
zincrby 創建或增加序號 格式:zinceby z1 4 dd(重復命令:增加序號)
zrank 回傳指定元素的位數(序號從小到大)格式:zrank z1 dd
zrevrank回傳指定元素的位數(序號從大到小)格式:zrevrank z1 dd
zrem 洗掉指定元素 格式:zrem z1
6、其他
keys * 查看所有鍵
exists 查看指定鍵是否存在(存在唯1:不存在為0) 格式:exists 鍵
select 切換庫(0-15) 格式:select 庫名
move 移動鍵 至 指定庫 格式:move l1 2
type 查看指定鍵的型別 格式:type 鍵名
rename 重命名 格式:rename 舊名 新名
dbsize 統計當前所有鍵的數量
info 獲取服務器配置資訊
flushdb 洗掉當前庫中所有鍵
flushall洗掉所以庫中所有鍵
二、其他應用
1、改密碼
進入 vim redis.conf組態檔
391行 取消注釋
requirepass 密碼
auth 密碼 或 redis-cli -a 密碼
2、持久化存盤
進入 vim redis.conf組態檔
187行 dir 指定備份檔案的位置(決定路徑)
3、主從配置
進入vim redis.conf組態檔
pidfile 指定行程檔案的位置
port 指定埠號
dir 指定備份檔案位置
slaveof 指定主服務器的IP和埠
masterauth 指定主服務器的認證資訊
本文來自博客園,作者:zhaofahao,轉載請注明原文鏈接:https://www.cnblogs.com/zhaofahao/p/16599907.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/502191.html
標籤:其他
上一篇:Linux防火墻操作firewall、iptable
下一篇:Linux —用戶和組
