04: 用戶授權及撤銷 、 數據備份與恢復 、 MySQL管理工具
一 、管理root用戶密碼
1.1 修改密碼
1.2 恢復密碼
二、用戶授權與權限撤銷
2.1 授權
2.2 撤銷權限
三、安裝圖形管理工具
四 數據備份與恢復 ----- 完全備份與恢復
4.1 完全備份
4.2 完全恢復
++++++++++++++++++++++++++++++++++
一 、管理root用戶密碼(*操作系統管理員有權限管理)
1.1 修改本機登錄密碼
#mysqladmin -hlocalhost -uroot -p password "新密碼"
必須知道正確舊密碼新密碼才能設置成功
1.2 恢復本機登錄密碼
#vim /etc/my.cnf
[mysqld]
#validate_password_policy=0
#validate_password_length=6
...
:wq
#systemctl stop mysqld
#systemctl start mysqld
#mysql
mysql> desc mysql.user;
authentication_string
mysql> select host,user,authentication_string from mysql.user;
mysql> update mysql.user set authentication_string=password("123456")
mysql> flush privileges;
mysql> quit;
#vim /etc/my.cnf
[mysqld]
#skip-grant-tables
validate_password_policy=0
validate_password_length=6
...
:wq
#systemctl stop mysqld
#systemctl start mysqld
#mysql -uroot -p123456
mysql>
+++++++++++++++++++++++++++++++++++++
2.1 授權 (在數據庫服務器上添加新的連接用戶)
授權命令語法格式
mysql> grant 權限列表 on 庫名 to 用戶名@"客戶端地址" identified by "密碼" with grant option;
權限列表:
all
select ,insert ,update(字段名)
usage
庫名:
.
庫名.*
庫名.表名
用戶名 : 連接數據庫服務器時使用的名字授權時自定義即可要有標識
客戶端地址:
%
192.168.4.12
192.168.4.%
pc100.tedu.cn
%.tedu.cn
localhost
identified by "密碼" 登錄密碼
with grant option 有授權權限 (可選項)
例子1
grant all on . to root@"%" identified by "654321" with grant option;
在客戶端測試授權:
ping -c 2 192.168.4.51
1 檢查是否有命令行連接命令 #which mysql
#yum -y install mariadb
2 連接數據庫服務器
#mysql -h數據庫服務器ip地址 -u用戶名 -p密碼
#mysql -h192.168.4.51 -uroot -p654321
mysq> select @@hostname;
mysql> select user();
mysql> show grants;
mysql> grant all on bbsdb.* to bbsuser@"192.168.4.53"
-> identified by "654321";
服務器端顯示當前運行的程序訪問用戶的信息?
mysql> show processlist ;
在53主機測試授權?
#mysql -h192.168.4.51 -ubbsuser -p654321
mysql> show grants;
++++++++++++++++++++++++++++++++++
mysql 授權庫 存儲的是授權信息,
使用不同的表存儲不同的授權權限。
user 存儲授權用戶已有的授權用戶
db 存儲授權用戶對庫的訪問權限
tables_priv 存儲授權用戶對表的訪問權限
columns_priv 存儲授權用戶對表中字段的訪問權限
show grants for 用戶名@“客戶端地址”;
++++++++++++++++++++++++++++++++++
2.2 撤銷權限(數據庫服務器上執行)
a 查看已有的授權用戶
select user,host from mysql.user;
b 查看已有的授權用戶訪問權
show grants for 用戶名@"客戶端地址";
c 撤銷用戶訪問權限
revoke 權限 on 庫名 from 用戶名@"客戶端地址";
revoke delete,update on bbsdb. from bbsuser@"192.168.4.53";
select from mysql.db where user="bbsuser"\G;
update mysql.db set Delete_priv="Y" where user="bbsuser" and host="192.168.4.53";
flush privileges;
revoke grant option on . from root@‘%‘;
revoke all on . from ‘root‘@‘%‘;
show grants for root@‘%‘;
刪除添加的授權用戶?
drop user 用戶名@"客戶端地址";
授權用戶登錄服務器後修改自己的登錄密碼?
SET PASSWORD=PASSWORD("新密碼");
管理員修改授權用戶的登錄密碼?
SET PASSWORD
FOR 用戶名@"客戶端地址"=PASSWORD("新密碼");
+++++++++++++++++++++++++++++++++
查看服務器上已有的授權用戶有哪些?
顯示一下已有授權用戶的訪問權限?
修改某個授權用戶的登錄密碼位777777 並在客戶端測試
某個授權登錄後修改自己的登錄密碼為666666 並在客戶端測試
撤銷某個授權用戶對 庫中所有表的 刪除記錄和更新記錄的權限。並在客戶端測試。
撤銷某個用戶的所有訪問權限。並在客戶端測試
刪除所有的授權用戶只允許數據庫管理員在本機登錄。並在客戶端測試。
授權tom用戶可以在本機登錄 密碼為654321 對student庫有完全權限。並有授權權限,並測試授權。
+++++++++++++++++++++++++++++++++++++++
三、安裝圖形管理工具phpmyadmin(安裝數據庫服務器上)
1 rpm -q httpd php php-mysql
2 yum -y install httpd php php-mysql
3 systemctl start httpd ; systemctl enable httpd
4 tar -zxf phpMyAdmin-2.11.11-all-languages.tar.gz -C /var/www/html/
5 cd /var/www/html/
6 mv phpMyAdmin-2.11.11-all-languages phpmyadmin
7 chown -R apache:apache phpmyadmin/
8 cd phpmyadmin/
9 cp config.sample.inc.php config.inc.php
10 sed -n ‘17p;31p‘ config.inc.php
$cfg[‘blowfish_secret‘] = ‘plj123‘;
$cfg[‘Servers‘][$i][‘host‘] = ‘localhost‘;
11 mysql -uroot -p123456
mysql> grant all on gamedb.* to gameuser@"localhost" identified by "123456";
12 client 254 :
#firefox http://192.168.4.51/phpmyadmin
+++++++++++++++++++++++++++++++++++++++++++
四 數據備份與恢復 ----- 完全備份與恢復
4.1 數據備份的目的?使用備份恢復數據。
4.2 數據備份方式?物理備份 和邏輯備份
物理備份:直接拷貝庫或表對應的文件。
cp -r /var/lib/mysql/mysql /opt/mysql.bak
tar -zcvf /opt/mysql.tar.gz /var/lib/mysql/mysql/*
cp /opt/mysql.bak /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql/mysql
systemctl restart mysqld
有局限性: myisam 跨平臺性查
數據量備份恢復浪費時間
邏輯備份:執行備份時,根據已有的數據,生成對應的sql命令,把sql保存到指定的文件裏。恢復時執行備份文件裏的sql命令,就把數據寫回到數據庫裏了。
4.3 數據備份策略? 完全備份 差異備份 增量備份
完全備份:備份所有數據
備份一臺數據庫服務器上所有數據
備份某一個數據庫的所有數據
備份某一張表數據庫的所有數據
差異備份:備份自完全備份後,所有新產生的數據。
增量備份:備份自上一次備份後,所有新產生的數據。
執行數據備份操作的手段:
使用crond任務 執行 備份腳本(shell / python)
備份數據時考慮的事情:
周期 時間 策略 文件命名 存儲空間
工作中使用的備份策略?
完全備份+差異備份
完全備份+增量備份
周期 時間 策略 t1 文件名 數據
6:00
1 完全 10 1.sql 10
2 差異 3 2.sql 3
3 6 3.sql 9
4 5 4.sql 14
5 1 5.sql 15
6 2 6.sql 17
7 差異 3 7.sql 20
周期 時間 策略 t1 文件名 數據
6:00
1 完全 10 1.sql 10
2 增量 3 2.sql 3
3 6 3.sql 6
4 5 4.sql 5
5 1 5.sql 1
6 2 6.sql 2
7 增量 3 7.sql 3
++++++++++++++++++++++++++++++++++++++
4.1 完全備份
[root@host50 ~ ]#
mysqldump -hlocalhost -uroot -p123456 庫名 > 目錄名/文件名.sql
庫名的表示方式:
備份一臺數據庫服務器上所有數據 --all-databases
備份某一個數據庫的所有數據 庫名 gamedb
備份某一張表數據庫的所有數據 庫名 表名 studentdb user
把多個庫的所有數據備份到一個備份文件裏 -B 庫名1 庫名2 庫名n
4.2 完全恢復
[root@host50 ~ ]#
mysql -hlocalhost -uroot -p123456 庫名 < 目錄名/文件名.sql
+++++++++++++++++++++++++++++++++++++++++++++
#mkdir /bakdb
#vim /bakdb/allstudb.sh
#!/bin/bash
day=$(date +%F)
if [ ! -e /bakdir ];then
mkdir /bakdir
fi
mysqldump -uroot -p123456 db4 > /bakdir/$day-db4.sql
:wq
#chmod +x /bakdb/allstudb.sh
#/bakdb/allstudb.sh
#ls /bakdir
#crontab -e
00 06 1 /bakdb/allstudb.sh &> /dev/null
:wq
++++++++++++++++++++++++++++++++++++
完整備份的缺點?
04: 用戶授權及撤銷 、 數據備份與恢復 、 MySQL管理工具