mysql用戶管理 ,常用sql語句 ,mysql數據庫備份恢復

mysql用戶管理

創建用戶

創建一個user1,受所有權限,密碼是123456,只能在127.0.0.1機器下登錄。
mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.45 sec)

創建user2用戶,密碼爲000000,並授予其針對db1庫SELECT,UPDATE,INSERT權限
 MySQL > grant SELECT,UPDATE,INSERT on db1.* to'user2'@'192.168.1.11' identified by '000000'; 
 創建user3,密碼爲000000,並針對所有IP授予其db1庫所有權限
 MySQL > grant all on db1.* to 'user3'@'%' identified by '000000';

當然,也可以使用create user ‘test’@’%’ identified by ‘123456’; 創建用戶並授權。

 grant all          代表所有的權限
 *.*                第一個*代表庫名。後面.*代表庫中的表名
 %                  通配所有的IP

[root@localhost ~]# mysql -uuser1 -p000000 
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
[root@localhost ~]# mysql -uuser1 -p000000 -h127.0.0.1
因爲默認使用sock通信,所以使用-h指定主機

查看用戶的授權信息

1. 查看當前用戶的授權信息
MySQL > show grants;
2. 查看指定用戶的授權信息。root用戶可用
MySQL > show grants for [email protected];

mysql> show grants for  user1@'127.0.0.1';
+-----------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                            |
+-----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user1'@'127.0.0.1' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)

常用sql語句

sql語句,對數據庫操作無外乎增,刪,改,查。

查找mysql庫user表中的行數

mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
|        7 |
+----------+
1 row in set (0.07 sec)

查詢mysql庫db表中的所有內容

select * from mysql.db\G;

查詢mysql庫db表中的db字段內容

mysql> select db from mysql.db;
+---------+
| db      |
+---------+
| test    |
| test\_% |
+---------+
2 rows in set (0.10 sec)

查詢mysql庫db表中的db和user字段內容

mysql> select db,user from mysql.db;
+---------+------+
| db      | user |
+---------+------+
| test    |      |
| test\_% |      |
+---------+------+
2 rows in set (0.00 sec)

來自ip模糊查詢mysql庫中的db表的所有的內容

select * from mysql.db where host like '192.168.%';

db1庫t1表中插入數據(1 , ‘abc’)

mysql> insert into db1.t1 values (1, 'abc');
Query OK, 1 row affected (0.17 sec)

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | abc  |
+------+------+
1 row in set (0.04 sec)

db1庫t1表中更新數據

mysql> update db1.t1 set name='aaa' where id=1;
Query OK, 1 row affected (0.15 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

刪除表中某條數據delete from db1.t1 where id=1;

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
|    2 | abc  |
+------+------+
2 rows in set (0.00 sec)

mysql> delete from db1.t1 where id=1;
Query OK, 1 row affected (0.03 sec)

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    2 | abc  |
+------+------+
1 row in set (0.00 sec)

清空表中的所有內容,表結構保留truncate table db1.t1;

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    2 | abc  |
+------+------+
1 row in set (0.00 sec)

mysql> truncate db1.t1;
Query OK, 0 rows affected (0.24 sec)

mysql> select * from db1.t1;
Empty set (0.00 sec)
mysql> desc db1.t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(4)   | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

刪除庫表,表結構同時刪除

drop table db1.t1;
drop database db1;

對運維來講,使用刪除(drop, truncate)命令,一定要慎重,在小心都不過分。一旦刪除錯了某表,字段,那就損失慘重!

Mysql數據庫備份和恢復

是在linux下操作的

備份庫 
mysqldump -uroot -p000000 庫名 > /tmp/mysql.sql

將mysql庫備份爲/tmp/mysql.sql

[root@shuai-01 ~]# mysqldump -uroot -p111111 mysql > /tmp/mysql.sql

恢復庫 mysql -uroot -p000000 mysql < /tmp/mysql.sql

[root@shuai-01 ~]# mysql -uroot -p111111 mysql < /tmp/mysql.sql 

備份表 mysqldump -uroot -p000000 mysql user > /tmp/user.sql 庫後面空格加上表名

恢復表 mysql -uroot -p000000 mysql < /tmp/user.sql 
只用寫庫名就行了。

備份所有庫 mysqldump -uroot -p000000 -A >/tmp/123.sql

只備份表結構 mysqldump -uroot -p000000 -d mysql > /tmp/mysql.sql

備份用mysqldump , 恢復用mysql 
mysqldump針對比較小的數據進行備份比較合適。

擴展 
SQL語句教程 http://blog.51cto.com/zt/206 
什麼是事務?事務的特性有哪些? http://blog.csdn.net/yenange/article/details/7556094 
根據binlog恢復指定時間段的數據 http://www.centoscn.com/mysql/2015/0204/4630.html 
mysql字符集調整 http://xjsunjie.blog.51cto.com/999372/1355013

使用xtrabackup備份innodb引擎的數據庫 innobackupex 備份 Xtrabackup 增量備份 
http://zhangguangzhi.top/2017/08/23/innobackex%E5%B7%A5%E5%85%B7%E5%A4%87%E4%BB%BDmysql%E6%95%B0%E6%8D%AE/#%E4%B8%89%E3%80%81%E5%BC%80%E5%A7%8B%E6%81%A2%E5%A4%8Dmysql 
相關視頻 
鏈接:http://pan.baidu.com/s/1miFpS9M 密碼:86dx 
鏈接:http://pan.baidu.com/s/1o7GXBBW 密碼:ue2f

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章