mysql用戶管理
- 創建用戶並授權登錄
- grant all on *.* to 'user1'@'127.0.0.1' identified by '123456';
第一個*表示db_name;第二個*表示tb_name
指定其來源IP127.0.0.1(只可通過此IP登錄)也可以使用通配符%,代表所有IP
identified by設置密碼
[root@akuilinux01 ~]# mysql -uuser1 -p123456 -h'127.0.0.1'
mysql>
- grant all on . to 'user2'@'localhost' identified by '123456';
[root@akuilinux01 ~]# mysql -uuser2 -p123456
mysql>
通過本機登錄,必須使用localhost
- 對具體權限進行授權
mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.21.128' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
#創建user2用戶,並授予其針對db1庫SELECT,UPDATE,INSERT權限
mysql> grant all on db1.* to 'user'@'%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
#創建user用戶,並針對所有IP授予其db1庫所有權限
- 查看權限命令
mysql> show grants;
#查看當前用戶的權限
mysql> show grants for [email protected];
#查看指定用戶的權限
- 不知道密碼的時候更改用於的權限
mysql> GRANT USAGE ON *.* TO 'user2'@'192.168.21.128' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE44568DDA
-> ;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.21.128';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for [email protected];
+-------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user2'@'192.168.21.128' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.21.128' |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
常用sql語句
mysql> use db1;
Database changed
#選擇庫
mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
| 12 |
+----------+
1 row in set (0.04 sec)
#查看指定庫的內容的行數
mysql> select * from mysql.db\G;
#查看庫的所有內容
mysql> select db,user from mysql.db;
#查看庫指定內容
mysql> select * from mysql.db where host like '192.168.%'\G;
#查看某些IP對應的庫內容,like表示匹配
mysql> create table t1(`id` int(4),`name` char(40));
Query OK, 0 rows affected (0.39 sec)
#在db1庫下創建表t1
mysql> select * from db1.t1;
Empty set (0.03 sec)
#查看錶中信息:空表
mysql> insert into db1.t1 values(1,'abc');
Query OK, 1 row affected (0.09 sec)
#向表中插入內容
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | abc |
+------+------+
1 row in set (0.00 sec)
mysql> update db1.t1 set name='aaa' where id=1;
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
+------+------+
1 row in set (0.00 sec)
#更改表中指定內容
mysql> delete from db1.t1 where id=1;
Query OK, 2 rows affected (0.10 sec)
#刪除表中指定內容
mysql> select * from db1.t1;
Empty set (0.00 sec)
mysql> truncate db1.t1;
Query OK, 0 rows affected (0.09 sec)
#清空一個表中內容
mysql> drop table t1;
Query OK, 0 rows affected (0.04 sec)
#刪除表
mysql> drop database db1;
Query OK, 0 rows affected (0.13 sec)
#刪除庫
mysql> use mysql;
mysql> delete from user where User='user1' and Host='127.0.0.1';
Query OK, 1 row affected (0.06 sec)
#刪除用戶,在刪除用戶前需要先指定表
MySQL數據庫備份恢復
- 備份庫
備份指定庫:
[root@akuilinux01 ~]# mysqldump -uroot -p123456 mysql > /tmp/mysqlbak.sql
備份所有庫:
[root@akuilinux01 ~]# mysqldump -uroot -p123456 -A > /tmp/mysql_all.sql
- 恢復庫
[root@akuilinux01 ~]# mysql -uroot -p123456 < /tmp/mysqlbak.sql
- 備份表
備份指定表:
[root@akuilinux01 ~]# mysql -uroot -p123456 mysql user > /tmp/user.sql
只備份表結構:
[root@akuilinux01 ~]# mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
- 恢復表
[root@akuilinux01 ~]# mysql -uroot -p123456 mysql user < /tmp/user.sql
擴展
- SQL語句教程
- 什麼是事務?事務的特性有哪些?
- 根據binlog恢復指定時間段的數據
- mysql字符集調整
- 使用xtrabackup備份innodb引擎的數據庫 innobackupex 備份 Xtrabackup 增量備份
- 相關視頻