1. 程式人生 > >MySQL第四天(用戶授權與撤銷,完全備份和完全恢復)

MySQL第四天(用戶授權與撤銷,完全備份和完全恢復)

運維

day04
一、用戶授權與撤銷
數據庫管理員密碼設置?
1.1修改數據庫管理員本機登錄密碼
[root@db2 ~]# mysqladmin -hlocalhost -uroot -p password "123456"
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@db2 ~]# mysql -uroot -p123456

1.2恢復數據庫管理員本機登錄密碼
[root@db2 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
#validate_password_policy=0
#validate_password_length=6
:wq
[root@db2 ~]# systemctl stop mysqld
[root@db2 ~]# systemctl start mysqld
[root@db2 ~]# mysql
mysql> desc mysql.user;

mysql> select user,host,authentication_string from mysql.user;

+-----------+-----------+-------------------------------------------+
| user | host | authentication_string |
+-----------+-----------+-------------------------------------------+
| root | localhost | 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| mysql.sys | localhost |
THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql> update mysql.user set authentication_string=password("654321") where user="root" and host="localhost"; ##修改authentication_string字段值,用函數password修改
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1

mysql> flush privileges; ##刷新特權
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@db2 ~]# vim /etc/my.cnf ##修改配置文件,註釋掉skip-grant-tables
[mysqld]
#skip-grant-tables
validate_password_policy=0
validate_password_length=6
:wq
[root@db2 ~]# systemctl stop mysqld
[root@db2 ~]# systemctl start mysqld
[root@db2 ~]# mysql -uroot -p654321

用戶授權
mysql> grant 權限列表 on 庫名 to 用戶名@"客戶端地址" identified by "密碼" with grant option; ##with grant option 給授予權限的權力,客戶端擁有授予其他用戶權限時,客戶端必須要有服務器mysql.*所有表insert權限

mysql> grant all on . to student@"192.168.4.54" identified by "123789" with grant option; ##在所有數據庫上授予所有權限,給student用戶,192.168.4.54以student身份用密碼123789可以登錄
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant insert,select on db.t1 to student@"192.168.4.53" identified by "123789" with grant option; ##授予部分權限
Query OK, 0 rows affected, 1 warning (0.00 sec)

1.3登錄用戶查看自己的訪問權限
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO ‘root‘@‘localhost‘ WITH GRANT OPTION |
| GRANT PROXY ON ‘‘@‘‘ TO ‘root‘@‘localhost‘ WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

1.4顯示當前登錄用戶信息
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
查看當前登錄的數據庫服務器主機名
mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| db2 |
+------------+
1 row in set (0.00 sec)

1.5查看服務器上已有的授權用戶
desc mysql.user
mysql> select user,host from mysql.user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| mysql.sys | localhost |
| root | localhost |
+-----------+-----------+
2 rows in set (0.00 sec)

mysql> select user,host from mysql.user;
+-----------+--------------+
| user | host |
+-----------+--------------+
| student | 192.168.4.53 |
| student | 192.168.4.54 |
| mysql.sys | localhost |
| root | localhost |
+-----------+--------------+
4 rows in set (0.00 sec)

1.6管理員用戶查看服務器已有授權用戶的訪問權限
mysql> show grants for root@"localhost";
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO ‘root‘@‘localhost‘ WITH GRANT OPTION |
| GRANT PROXY ON ‘‘@‘‘ TO ‘root‘@‘localhost‘ WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for student@"192.168.4.53";
+-----------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-----------------------------------------------------------------------------------------+
| GRANT USAGE ON . TO ‘student‘@‘192.168.4.53‘ |
| GRANT SELECT, INSERT, CREATE ON db.t1 TO ‘student‘@‘192.168.4.53‘ WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for student@"192.168.4.54";
+---------------------------------------------------------------------------+
| Grants for [email protected] |
+---------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO ‘student‘@‘192.168.4.54‘ WITH GRANT OPTION |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

1.7權限撤銷
mysql>revoke 權限列表 on 數據庫名 from 用戶名@"客戶端地址";

1.8刪除授權用戶
drop user 用戶名@"客戶端地址";

1.9數據庫管理員修改授權用戶的登錄密碼
set password 用戶名@"客戶端地址"=password("新密碼");

1.10授權用戶登錄後,重置自己的登錄密碼
SET PASSWORD=PASSWORD("密碼");

1.11授權信息記錄在mysql庫下不同的表裏
use mysql;
show tables;
user表 記錄服務器上有哪些授權用戶
columns_priv表 記錄授權用戶對庫中字段的訪問權限
mysql> desc mysql.columns_priv;
+-------------+----------------------------------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------------------------------------------+------+-----+-------------------+-----------------------------+
| Host | char(60) | NO | PRI | | |
| Db | char(64) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Table_name | char(64) | NO | PRI | | |
| Column_name | char(64) | NO | PRI | | |
| Timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| Column_priv | set(‘Select‘,‘Insert‘,‘Update‘,‘References‘) | NO | | | |
+-------------+----------------------------------------------+------+-----+-------------------+-----------------------------+
7 rows in set (0.01 sec)

mysql> select * from mysql.columns_priv;
Empty set (0.00 sec)

tables_priv表 記錄授權用戶對庫中表的訪問權限 ##host為客戶端地址,db為庫,user為用戶
mysql> desc mysql.tables_priv;
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
| Host | char(60) | NO | PRI | | |
| Db | char(64) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Table_name | char(64) | NO | PRI | | |
| Grantor | char(93) | NO | MUL | | |
| Timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| Table_priv | set(‘Select‘,‘Insert‘,‘Update‘,‘Delete‘,‘Create‘,‘Drop‘,‘Grant‘,‘References‘,‘Index‘,‘Alter‘,‘Create View‘,‘Show view‘,‘Trigger‘) | NO | | | |
| Column_priv | set(‘Select‘,‘Insert‘,‘Update‘,‘References‘) | NO | | | |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.00 sec)

mysql> select * from mysql.tables_priv;
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Create,Grant | |
| 176.121.205.59 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Grant | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
8 rows in set (0.00 sec)

db表 記錄授權用戶服務器上庫的訪問權限

1.7撤銷權限
mysql>revoke 權限列表 on 數據庫名 from 用戶名@"客戶端地址";
mysql> select * from mysql.tables_priv;
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Create,Grant | |
| 176.121.205.59 | db | admin | t1 | root@localhost | 2018-02-26 04:05:19 | Select | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
| 192.168.4.54 | db | teacher | t1 | root@localhost | 0000-00-00 00:00:00 | Update | |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
9 rows in set (0.00 sec)

mysql> revoke insert on db.t1 from student@"192.168.4.53";
Query OK, 0 rows affected (0.00 sec)
mysql> revoke grant option on db.t1 from student@"192.168.4.53";
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.tables_priv;
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Create | |
| 176.121.205.59 | db | admin | t1 | root@localhost | 2018-02-26 04:05:19 | Select | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
| 192.168.4.54 | db | teacher | t1 | root@localhost | 0000-00-00 00:00:00 | Update | |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
9 rows in set (0.00 sec)

通過修改記錄字段值的方式刪除權限。
mysql> select * from mysql.tables_priv;
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Create,Grant | |
| 176.121.205.59 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Grant | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
| 192.168.4.54 | db | teacher | t1 | root@localhost | 0000-00-00 00:00:00 | Update | |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
9 rows in set (0.00 sec)

mysql> update mysql.tables_priv set Table_priv="select" where host="176.121.205.59" and Db="db";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.tables_priv;
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Create,Grant | |
| 176.121.205.59 | db | admin | t1 | root@localhost | 2018-02-26 04:05:19 | Select | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
| 192.168.4.54 | db | teacher | t1 | root@localhost | 0000-00-00 00:00:00 | Update | |
+----------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
9 rows in set (0.00 sec)

mysql> drop user admin@"176.121.205.59"; ##刪除用戶方式撤銷所有權力
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.tables_priv;
+---------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| Host | Db | User | Table_name | Grantor | Timestamp | Table_priv | Column_priv |
+---------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
| localhost | sys | mysql.sys | sys_config | root@localhost | 2018-02-22 01:09:54 | Select | |
| 192.168.4.53 | db | student | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Create | |
| 192.168.4.254 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert | |
| 192.168.4.54 | db | admin | t1 | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Grant | |
| 192.168.4.54 | db | admin | db | root@localhost | 0000-00-00 00:00:00 | Create,Grant | |
| 192.168.4.54 | mysql | admin | user | root@localhost | 0000-00-00 00:00:00 | Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter,Create View,Show view,Trigger | |
| 192.168.4.51 | db | admin | t1 | [email protected] | 0000-00-00 00:00:00 | Select | |
| 192.168.4.54 | db | teacher | t1 | root@localhost | 0000-00-00 00:00:00 | Update | |
+---------------+-------+-----------+------------+--------------------+---------------------+----------------------------------------------------------------------------------------------------+-------------+
8 rows in set (0.00 sec)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在客戶端使用授權連接數據庫服務器
mysql -h數據庫服務器ip地址 -u授權用戶名 -p密碼
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
安裝數據庫圖形管理工具-phpmyadmin

[root@db2 09.mysql]# yum -y install httpd php php-mysql
[root@db2 09.mysql]# systemctl restart httpd
[root@db2 09.mysql]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@db2 09.mysql]# vim /var/www/html/test.php
<?php
$db=mysql_connect("localhost","root","654321");
if($db){echo "ok";}else{echo "no";};
?>
:wq
[root@db2 html]# php test.php
http://192.168.4.52/test.php

phpmyadmin
[root@db2 09.mysql]# tar -xf phpMyAdmin-2.11.11-all-languages.tar.gz -C /var/www/html/
[root@db2 09.mysql]# cd /var/www/html/
[root@db2 html]# ls
phpMyAdmin-2.11.11-all-languages test.php
[root@db2 html]# mv phpMyAdmin-2.11.11-all-languages/ phpmyadmin
[root@db2 html]# ls
phpmyadmin test.php
[root@db2 html]# ls -ld phpmyadmin/
drwxr-xr-x. 9 root root 4096 9月 7 2010 phpmyadmin/
[root@db2 html]# chown -R apache:apache phpmyadmin/
[root@db2 html]# ls -ld phpmyadmin/
drwxr-xr-x. 9 apache apache 4096 9月 7 2010 phpmyadmin/
[root@db2 html]# cd phpmyadmin/
[root@db2 phpmyadmin]# cp config.sample.inc.php config.inc.php
[root@db2 phpmyadmin]# sed -n ‘17p;31p‘ config.inc.php
vim config.inc.php
$cfg[‘blowfish_secret‘] = ‘plj123‘; / YOU MUST FILL IN THIS FOR COOKIE AUTH! / ##單引號中間隨意填
$cfg[‘Servers‘][$i][‘host‘] = ‘localhost‘; ##填寫數據庫ip地址

mysql> create database t44;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db |
| db1 |
| mysql |
| performance_schema |
| sys |
| t44 |
+--------------------+
7 rows in set (0.00 sec)

mysql> grant all on t44.* to yaya88@"localhost" identified by "123456";
Query OK, 0 rows affected, 1 warning (0.00 sec)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
數據備份與恢復-完全備份和恢復
1 備份數據的目的?

2 備份方式?
物理備份:拷貝庫或表對應的文件
#cp -r /var/lib/mysql/數據庫名 /opt/mysql.bak
或者
#tar -zcvf /opt/數據庫名.tar.gz /var/lib/mysql/*
恢復:
#cp -r /opt/mysql.bak /var/lib/mysql/數據庫名
#chown -R mysql:mysql /var/lib/mysql/數據庫名
#systemctl restart mysqld

邏輯備份:執行備份根據備份的庫或表,生成對於的sql命令,然後把sql命令存儲到指定的文件裏。

3 備份策略
完全備份:備份所有數據 #一臺數據庫服務器//某個庫的所有數據//某一張表的所有數據
mysqldump -uroot -p123456 數據庫名> 目錄名/xxx.sql

只備份新產生的數據?
binlog日誌 innobackup
差異備份:備份自完全備份後所有新產生的
增量備份:備份自上次備份後所有新產生的

備份策略的使用方式?
完全+差異
完全+增量

crond 執行 備份腳本

30 23 1 /rootallbaksh #每周一晚上完全備份
50 23 2-7 /root/newdata.sh #周二到周日差異備

1.備份服務器上所有數據庫到/datadir/ 文件名為all.sql
#mysqldump -uroot -p123456 --all-databases > /datadir/all.sql

2.備份服務器上db3 庫的所有數據到/datadir 文件名db3.sql
#mysqldump -uroot -p123456 db3 > /datadir/db3.sql

3.備份db3庫下的user表的所有數據到/datadir 文件名db3-user.sql
#mysqldump -uroot -p123456 db3 user > /datadir/db3-user.sql

4.刪除db3庫下的user表記錄 使用備份文件恢復數據
mysql>delete from db3.user
#mysql -uroot -p123456 db3 < /datadir/db3-user.sql

5.把db3庫下的所有數據恢復到db55庫裏
mysql> create database db55;

mysql -uroot -p654321 db55 < /datadir/db3.sql

6.刪除db3庫使用備份文件恢復db3庫的數據
Mysql> drop database db3;
Mysql>create database db3;
#mysql -uroot -p654321 db3 < /datadir/db3.sql

7.備份數據庫服務的所有的授權信息,
#mysqldump -uroot -p65432

8.編寫腳步alladta.sh功能備份db55庫的所有數據到系統的/mydata目錄下,
備份名字:年-月-日-庫名.sql

vim /alldata.sh

#!/bin/bash
Day=date +%F
If [ ! -e /mydata ];then
Mkdir /mydata
fi
mysqldump -hlocalhost -uroot -p654321 db55 > /mydata/$day-db55.sql
編寫計劃任務:
]#crontab -e -uroot
30 23 1 /root/alldata.sh
################

完全備份:
#mysqldump -hlocalhost -uroot -p123456 數據庫名 > 目錄名/xxx.sql
數據庫名的表示方式

一臺服務器上的所有數據
--all-databases

某一個庫的所有數據
庫名 #db1

某一張表的所有數據
庫名 表名 #db1 t1

把多個庫的所有數據備份到一個備份文件裏
-B 庫名列表

#mkdir /mydata
#mysqldump -uroot -p654321 db2 > /mydata/db2.sql ##備份
Mysql>use db2;
Mysql>drop table t7,t8;
恢復
#mysql -uroot -p654321 庫名 < /備份文件 ##還原
#mysql -uroot -p654321 db2 < /mydata/db2.sql
#############################
備份數據時需要考慮的事情?
備份策略
備份時間
數據備份頻率
備份文件的命名 yyyy-mm-dd-dbname.sql
存儲空間 可擴展LV RAID

完全備份策略有哪些缺點?
備份和恢復都會鎖表(寫鎖)
使用完全備份文件,只能把數據恢復到備份時的狀態(比如周一備份,周2到周6產生的數據後,還原後只有周一數據)

MySQL第四天(用戶授權與撤銷,完全備份和完全恢復)