目? 錄
一、MySQL 用戶信息存儲位置
二、新建用戶
1.創建本地用戶
2.創建外網用戶
三、用戶授權
1.說明
2.實例
四、撤銷授權
五、修改用戶密碼
六、修改用戶名、主機名/IP地址
七、刪除用戶
八、數據備份
1.導出數據
2.導入數據?
(1)方式一
(2)方式二
一、MySQL 用戶信息存儲位置
? ? ? ? 存儲在 mysql 數據庫下的 user 表內。
-- 展示數據庫show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)-- 使用 mysql 數據庫
use mysql;-- 展示表
show tables;-- 查詢 user 表信息
select user, host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
二、新建用戶
1.創建本地用戶
-- 創建用戶名為“java01”,密碼為“javagood”的本地用戶
create user 'java01'@'localhost' identified by 'javagood';
2.創建外網用戶
-- 創建用戶名為“java02”,密碼為“javagood”的外網用戶
create user 'java02'@'%' identified by 'javagood';
三、用戶授權
1.說明
- 語法格式:【grant[權限1, 權限2,…] on 數據庫名.表名 to '用戶名'@'主機名/IP地址';】;
- 權限:
- 所有權限:all privileges;
- 細粒度權限:select、insert、update、delete、create、alert、drop、index、usage(登錄權限)、reload。
- 數據庫名和表名可以使用【*】,分別代表:所有數據庫、所有表;
- 授權后,使用【flush privileges】刷新權限;
- 查看某用戶權限:【show grants for?'用戶名'@'主機名/IP地址';】;
- 允許被授權用戶再為其他用戶授權:【grant[權限1, 權限2,…] on 數據庫名.表名 to '用戶名'@'主機名/IP地址' with grant option;】。
2.實例
-- 為“java01”用戶授予對所有庫、表的“select、insert、update、delete、create”權限
grant select, insert, update, delete, create on *.* to 'java01'@'localhost';-- 刷新權限
flush privileges;-- 查看“java01”的權限
show grants for 'java01'@'localhost';
四、撤銷授權
- 語法格式:【revoke [權限1, 權限2,…] on 數據庫名.表名 from '用戶名'@'主機名/IP地址';】;
- 撤銷后,使用【flush privileges】刷新權限;
- 撤銷時的數據庫名和表名需要與授權時一致。
-- 撤銷“java01”的 create 和 delete 權限
revoke create, delete on *.* from 'java01'@'localhost';-- 刷新權限
flush privileges;-- 查看“java01”的權限
show grants for 'java01'@'localhost';
五、修改用戶密碼
- MySQL 8 語法格式:【alter user '用戶名'@'主機名/IP地址' identified by '新密碼';】;
- 修改密碼后,使用【flush privileges】刷新權限。
-- 將“java01”的密碼修改為“123”
alter user 'java01'@'localhost' identified by '123';-- 刷新權限
flush privileges;
六、修改用戶名、主機名/IP地址
- 語法格式:【rename user '原用戶名'@'主機名/IP地址' to?'新用戶名'@'主機名/IP地址';】;
- 修改用戶名后,使用【flush privileges】刷新權限。
-- 修改“java01”用戶名為“jason”
rename user 'java01'@'localhost' to 'jason'@'localhost';-- 刷新權限
flush privileges;
七、刪除用戶
- 語法格式:【drop user?'用戶名'@'主機名/IP地址';】;
- 刪除用戶后,使用【flush privileges】刷新權限。
-- 刪除“java02”和“jason”用戶
drop user "java02"@"%";
drop user "jason"@"localhost";-- 刷新權限
flush privileges;
八、數據備份
1.導出數據
- 在登錄 MySQL 之前操作;
- 語法格式:【mysqldump 數據庫名 表名 > 路徑+文件名.sql -u用戶名 -p密碼 --default-character-set=utf8】;
- 導出數據庫中的全部表,則不寫表名。
-- 導出 test 數據庫中的全部表
mysqldump test > D:/test.sql -uroot -proot --default-character-set=utf8-- 為保證之后的導入,在此處先刪除 MySQL 內的 test 數據庫
drop database if exists test;
2.導入數據?
(1)方式一
- 在登錄 MySQL 之前操作;
- 需要事前建立好對應數據庫;
- 語法格式:【mysql 數據庫名 < 路徑+文件名.sql -u用戶名 -p密碼 --default-character-set=utf8】。
-- 事先在 MySQL 內建立 test 空白數據庫
create database test;-- 然后退出 MySQL
quit-- 導入 test.sql
mysql test < D:/test.sql -uroot -proot --default-character-set=utf8-- 為保證之后的導入,在此處先刪除 MySQL 內的 test 數據庫
drop database if exists test;
(2)方式二
- 在登錄 MySQL 之后操作;
- 語法格式:【source 路徑+文件名.sql;】。
-- 創建 test 空白數據庫
create database test;-- 使用 test
use test-- 導入 test.sql
source D:/test.sql;