第一部分DCL
一.權限級别
- Global level 所有庫,所有表的權限。
- Database level 某個資料庫中的所有表的權限。
- Table level 庫中的某個表的權限
-
Column level 表中的某個字段,的權限。
二.mysql使用者管理
1.建立使用者
mysql> create user [email protected]‘192.168.152.%’ identified by ‘[email protected]’;
Query OK, 0 rows affected (0.00 sec)
mysql>
``
注釋:建立 使用者 使用者名稱 分隔符 允許登入位址 身份認證 使用者密碼
2. 删除使用者 DROP USER’u1’@‘192.168.152.%’;
3. 修改使用者密碼
root修改自己密碼mysqladmin -uroot -p’舊密碼’ password ‘new_password’
SET PASSWORD=password(‘new_password’);
FLUSH PRIVILEGES; 重新整理權限
丢失root使用者密碼
修改mysql啟動設定
重新開機mysql,無密碼登入,修改密碼
修改mysql啟動設定,注釋掉跳過密碼,重新啟動
4. 登入MySQL
mysql -P 3306 -u root -p123 mysql -e ‘show tables’
注釋 -P伺服器端口 預設3306 -u 指定使用者名 -p 指定密碼 -e 接SQL語句
還有-h 指定主機名
三.mysql權限原理
文法格式
grant 權限清單 on 庫名.表名 to ‘使用者名’@‘用戶端主機’ [identified by ‘密碼’ with option參數];
權限清單 all: 所有權限(不包括授權權限)select,update 查詢更新,部分權限
資料庫.表名
*. * 所有庫下的所有表
庫名 . * 庫下的所有表
庫名 . 表名 庫下的表
例子:
grant SELECT (id), INSERT (name,age) ON mydb.mytbl to ‘user8’@‘localhost’ identified by ‘[email protected]’;
用戶端主機
![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20200827185552224.png#pic_center
with_option參數 授權選項
使用者被授予了某個權限,那麼預設情況下,該使用者是不能把這個權限授予給其他人的。
但是可以使用WITH GRANT OPTION這個子句來讓該使用者可以将權限再授予給其他人。
四.mysql權限示例
賦予權限
授權目标:授予 aa對bbs庫 所有的表,具有所有權限(不包含授權)
賦權示例
1.準備測試賬戶,root賬戶建立
2.root賬戶授權
3.使用測試賬戶操作資料庫
進入
建立庫bbs,然後再試試别的庫
進入bbs庫,建立資料表和插入資料。授權驗證完畢
回收權限
1.檢視權限
檢視自己的權限 SHOW GRANTS\G
檢視别人的權限 SHOW GRANTS FOR [email protected]’%’\G
2.回收權限REVOKE
REVOKE 權限清單 ON 資料庫名 FROM 使用者名@‘用戶端主機’
REVOKE ALL PRIVILEGES ON bbs.* FROM [email protected]’%’; //回收所有權限
第二部分 日志
一. 日志分類
1 錯誤日志 :啟動,停止,關閉失敗報錯。rpm安裝日志位置 /var/log/mysqld.log
2 通用查詢日志:所有的查詢都記下來。
3 二進制日志:實作備份,增量備份。隻記錄改變資料,除了select都記。
4 中繼日志:讀取主伺服器的binlog,在本地回放。保持一緻。
5 slow log:慢查詢日志,指導調優,定義某一個查詢語句,定義逾時時間,通過日志提供調優建議給開發人員。
6 DDL log: 定義語句的日志。
二、Error Log 錯誤日志
進入主配置檔案,觀察日志是否啟動。
vim /etc/my.cnf
log-error=/var/log/mysqld.log
該字段,标記是否啟動日志,以及日志位置。
如果出現錯誤mysql服務啟動不了,請來這個日志檔案看看。
例子:進入配置檔案,故意修改出現錯誤日志
進入配置檔案,重新改回原樣,重新啟動。
三、Binary Log 二進制日志
1.預設沒有開啟,二進制日志
啟動二進制日志# vim /etc/my.cnf
# systemctl restart mysqld 重新開機資料庫,日志檔案生效
2.測試
檢視二進制日志檔案目前狀态
# at 數字 記錄位置
進入資料庫,進行資料操作,創庫,創表,創資料
完成二進制日志啟動,查詢測試
四、Slow Query Log 慢查詢日志
預設慢查詢日志未開啟
1.開啟慢查詢日志功能
vim /etc/my.cnf
#systemctl restart mysqld 重新開機服務
檢視慢查詢日志檔案
#ll /var/lib/mysql/slow
模拟慢查詢,測試一個超長時間的查詢。
驗證慢查詢日志
#tail /var/lib/mysql/localhost-slow.log