標籤:mysql
一:mysql使用者管理
MYSQL資料庫預設只有一個root使用者
mysql將使用者資訊儲存在mysql資料庫user表中
建立一個新使用者:CREATE USER 使用者名稱 IDENTIFIED BY ‘密碼‘; #新使用者建立後不能登入,因為沒有設定許可權
mysql> create user xj identified by ‘654321‘;Query OK, 0 rows affected (0.00 sec)mysql> select user,host,password from user;+------+-----------------------+-------------------------------------------+| user | host | password |+------+-----------------------+-------------------------------------------+| root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | localhost.localdomain | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | 127.0.0.1 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || | localhost | || | localhost.localdomain | || xxj | % | || XXJ | % | || xj | % | *2A032F7C5BA932872F0F045E0CF6B53CF702F2C5 |+------+-----------------------+-------------------------------------------+8 rows in set (0.00 sec)
刪除一個使用者:DROP USER 使用者名稱;
重新命名一個使用者:RENAME USER 原使用者名稱 TO 新使用者名稱;
mysql> DROP USER XXJ;Query OK, 0 rows affected (0.00 sec)mysql> DROP USER xj;Query OK, 0 rows affected (0.00 sec)mysql> SELECT user,host,password FROM user;+------+-----------------------+-------------------------------------------+| user | host | password |+------+-----------------------+-------------------------------------------+| root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | localhost.localdomain | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | 127.0.0.1 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || | localhost | || | localhost.localdomain | || xxj | % | |+------+-----------------------+-------------------------------------------+6 rows in set (0.00 sec)mysql> RENAME USER xxj TO xiexiaojun;Query OK, 0 rows affected (0.00 sec)mysql> SELECT user,host,password FROM user;+------------+-----------------------+-------------------------------------------+| user | host | password |+------------+-----------------------+-------------------------------------------+| root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | localhost.localdomain | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | 127.0.0.1 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || | localhost | || | localhost.localdomain | || xiexiaojun | % | |+------------+-----------------------+-------------------------------------------+6 rows in set (0.00 sec)
修改目前使用者密碼:SET PASSWORD=PASSWORD(‘新密碼‘);
修改目前使用者密碼: SET PASSWORD FOR 使用者名稱=PASSWORD(‘新密碼‘);
mysql> set password for xiejun=password(‘6543210‘);Query OK, 0 rows affected (0.00 sec)mysql> select user,host,password from user;+------------+-----------------------+-------------------------------------------+| user | host | password |+------------+-----------------------+-------------------------------------------+| root | localhost | *05EB937E16F9C8885963B8F1F2487AB5C94FED2B || root | localhost.localdomain | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | 127.0.0.1 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || | localhost | || | localhost.localdomain | || xiexiaojun | % | || xiejun | % | *2437A328FF22FC8D4C8AC9CB393FAA760BF10B0D |+------------+-----------------------+-------------------------------------------+7 rows in set (0.00 sec)mysql> set password for xiexiaojun=password(‘6543210‘);Query OK, 0 rows affected (0.00 sec)mysql> select user,host,password from user;+------------+-----------------------+-------------------------------------------+| user | host | password |+------------+-----------------------+-------------------------------------------+| root | localhost | *05EB937E16F9C8885963B8F1F2487AB5C94FED2B || root | localhost.localdomain | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || root | 127.0.0.1 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || | localhost | || | localhost.localdomain | || xiexiaojun | % | *2437A328FF22FC8D4C8AC9CB393FAA760BF10B0D || xiejun | % | *2437A328FF22FC8D4C8AC9CB393FAA760BF10B0D |+------------+-----------------------+-------------------------------------------+7 rows in set (0.00 sec)mysql>
二、mysql許可權管理
mysql許可權系統控制一個使用者是否能進行串連,以及串連後能夠針對哪些對象進行什麼什麼操作。
Mysql許可權控制包括2個階段:
1 檢查使用者是否能夠串連
2 檢查使用者是否具有所執行動作的許可權
Mysql授予許可權可分為以下幾個層級:
全域層級
資料庫層級
表層級
列層級
子程式層級
Mysql通過GRANT授予許可權,REVOKE撤銷許可權。
授予一個使用者權限:
GRANT ALL PRIVILEGES ON 層級 TO 使用者名稱@主機 IDENTIFIED BY 密碼;
撤銷一個使用者權限:REVOKE ALL PRIVILEGES FROM 使用者名稱;
三、Mysql串連認證
當串連Mysql服務時,Mysql通過使用者名稱密碼和主機資訊驗證是否允許串連。
GRANT ALL PRIVILEGES ON *.* TO ‘使用者名稱‘@‘主機‘ IDENTIFIED BY 密碼‘;
這裡的主機是指允許從哪些主機進行串連,可以使用如下形式:
1 所有主機‘%‘
2 精確的主機名稱或IP地址:www.linuxcast.net或192.168.1.1
3 使用“*”萬用字元:*.linuxcast.net
4 指定一個網段:192.168.1.0/255.255.255.0
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456789‘; # *.* 全域許可權 所有資料庫下所有表Query OK, 0 rows affected (0.00 sec)
4、Mysql備份和恢複
Mysql使用最廣泛的備份恢複工具是mysqldump
備份一個指定資料庫:
mysqldump -u root -p 資料庫名稱 > 備份檔案.sql
例:mysqldump -u root -p linuxcast > linuxcast_db.sql
mysqldump備份出來的是純文字的SQL檔案,可以修改後作為其它資料庫資料使用。
從備份的SQL檔案恢複一個指定資料庫:
mysql -u root -p 資料庫名稱 < 備份檔案.sql
mysql 常見管理操作