一個MySQL服務中能夠跑多個庫,不一樣的用戶能夠給予不一樣的受權,合理安全的使用MySQL。mysql
grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';
grant all表明授予全部權限sql
*.*表明全部數據庫的全部表數據庫
to後是受權的用戶安全
@後爲容許登陸的來源IP,@後也能夠寫localhost,使用戶直接經過本地sock登陸,還能夠寫%,表明容許全部IP訪問MySQL架構
identified by 後是受權的用戶的密碼ide
mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd'; Query OK, 0 rows affected (0.00 sec)
注:grant命令不會記錄在命令歷史文件中,由於命令自己是不安全的。spa
show grants 能夠查看當前用戶的受權3d
注:查看受權時要指定相應用戶以及用戶的來源IP(用戶在不一樣的IP下的權限可能不一樣)code
當用戶在127.0.0.1上具備相關權限,現該用戶須要在192.168.88.10上具備相同權限,則經過上述命令查看該用戶受權後,將權限複製一遍,對應IP修改成新的IP地址便可blog
sql查詢能夠跨庫跨表查詢,庫與表用「.」隔開。
select count(*) from mysql.user; //查詢mysql庫的user表的全部行數
select * from mysql.db; //查詢mysql庫的db表
注:不建議使用select帶*的語句,該類語句會耗費大量的時間和資源。
select db from mysql.db; //查詢mysql庫的db表中的db字段
select db,user from mysql.db;
select * from mysql.db where host like '192.168.%'; //在mysql庫db表中查詢來源IP爲192.168.x.x網段的全部內容
insert into db1.t1 values (1, '123'); //向db庫的t1表中插入一條數據
注:插入的數據類型是字符串類型時,數據要加單引號。
update db1.t1 set name='aaa' where id=1; //將db1庫的t1表中name字段中的數據改成aaa,針對id=1的行
truncate table db1.t1; drop table db1.t1;
truncate與drop命令的區別:前者只清除數據保留原有架構,後者可連同表一併刪除。
drop database 數據庫名稱;
mysqldump -uroot -p123456 mysql > /tmp/mysql.sql //將mysql庫中內容備份至mysql.sql文件中
mysql -uroot -p123456 mysql < /tmp/mysql.sql
mysqldump -uroot -p123456 mysql user > /tmp/user.sql
先寫對應的數據庫,再寫須要備份的表
恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql
恢復時前面只寫對應的數據庫,不用再寫表名
mysqldump -uroot -p123456 -A >/tmp/123.sql
mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
注:mysqldump命令針對規模較小的數據庫進行操做。