標籤:串連數 cas root使用者 root 不同的 啟動mysql 常用 增刪改 tca
資料庫的進階操作
MySQL提供了一個mysqldump命令,它可以實現資料的備份
資料的備份
1、備份單個資料庫
mysqldump -uusername -ppassword dbname [tbname1 [tbname2…]]>filename.sql
2、備份多個資料庫
mysqldump –uusername –ppassword -–database dbname1 [dbname2 dbname3…]
>filename.sql
3、備份所有資料庫
mysqldump –uusername –ppassword -–all-databases>filename.sql
資料的還原
資料庫中的資料遭到破壞時,可以通過備份好的資料檔案對資料進行還原,這裡所說的還原是指還原資料庫中的資料,而庫是不能被還原的。
mysql –uusername –ppassword [dbname] <filename.sql
1、首先需要使用DROP語句將資料庫chapter08刪除
DROP DATABASE chapter08;
2、由於庫是不能被還原的,因此先要建立一個資料庫chapter08
CREATE DATABASE chapter08;
3、使用mysql語句還原C:/backup目錄下的chapter08_20140305.sql檔案
mysql -uroot -pitcast chapter08 <C:/backup/chapter08_20140305.sql
4、為了驗證資料已經還原成功,可以使用SELECT語句查詢chapter08中的資料SELECT * FROM student;
使用者管理
user表
user表是最重要的一個許可權表,它記錄了允許串連到伺服器的帳號資訊以及一些全域級的許可權資訊。
user表中有42個欄位,大致可分為4類使用者列、許可權列、安全列、資源控制列
建立普通使用者
1、使用GRANT語句建立使用者,是建立使用者最常用的方法
GRANT privileges ON database.table
TO ‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]
[,‘username‘@‘hostname [IDENTIFIED BY [PASSWORD]‘password‘]] …
2、使用CREATE USER語句建立使用者
CREATE USER ‘username‘@‘hostname‘[IDENTIFIED BY [PASSWORD]‘password‘]
[,‘username‘@‘hostname‘[IDENTIFIED BY [PASSWORD]‘password‘]]…
3、使用INSERT語句建立使用者
INSERT INTO mysql.user(Host,User,Password,ssl_cipher、x509_issuer、x509_subject)
VALUES(‘hostname‘,‘username‘,PASSWORD(‘password‘),‘‘,‘‘,‘‘);
刪除普通使用者
1、使用DROP USER語句刪除使用者
DROP USER ‘username‘@‘hostname‘[,‘username‘@‘hostname‘];
2、使用DELETE語句刪除使用者
DELETE FROM mysql.user WHERE Host=‘hostname‘ AND User=‘username‘;
修改使用者密碼
root使用者修改root使用者密碼
1、使用mysqladmin命令修改
mysqladmin –u username [–h hostname] –p password new_password
2、使用UPDATE語句修改
UPDATE mysql.user set Password=PASSWORD(‘new_password‘)
WHERE User=‘username‘ and Host=‘hostname‘;
3、使用SET語句修改
SET PASSWORD=PASSWORD(‘new_password‘);
root使用者修改普通使用者密碼
1、使用GRANT USAGE語句修改
GRANT USAGE ON *.* TO ‘username‘@‘localhost‘ IDENTIFIED BY [PASSWORD]‘new_password‘;
2、使用UPDATE語句修改
UPDATE mysql.user set Password=PASSWORD(‘new_password‘) WHERE User=‘username‘ and Host=‘hostname‘;
3、使用SET語句修改
SET PASSWORD=PASSWORD(‘new_password‘);
普通使用者修改密碼
SET PASSWORD=PASSWORD(‘new_password‘);
如何解決root使用者密碼丟失問題
停止MySQL服務
net stop mysql
使用--skip-grant-tables啟動MySQL服務
mysql --skip-qrant-tables
登入MySQL伺服器
重新開啟一個運行對話方塊,在運行對話方塊中登入MySQL伺服器,具體命令如下:
mysql -u root
使用UPDATE語句設定root使用者密碼
UPDATE mysql.user SET Password=PASSWORD(‘itcast‘) WHERE User=‘root‘ AND Host=‘localhost‘;
載入許可權表
FLUSH PRIVILEGES;
上述步驟執行完,可以使用EXIT或\q命令退出伺服器,然後使用新密碼重新登入。至此,便完成了root使用者的密碼設定。
許可權管理
MySQL的許可權
MySQL中的許可權資訊被儲存在mysql資料庫的user、db、host、tables_priv、column_priv和procs_priv表中,當MySQL啟動時會自動載入這些許可權資訊,並將這些許可權資訊讀取到記憶體中。
授予許可權
我們之所以可以對資料進行增刪改查的操作,是因為資料庫中的使用者擁有不同的許可權,合理的授權可以保證資料庫的安全。
GRANT privileges [(columns)][,privileges[(columns)]] ON database.table
TO ‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]
[,‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]] …
[WITH with_option [with_option]…]
privileges:表示權限類別型。
columns:參數表示許可權作用於某一列,該參數可以省略不寫,此時許可權作用於整個表,username:表示使用者名稱。
hostname表示主機名稱。
IDENTIFIED BY:參數為使用者佈建密碼。
PASSWORD參數為關鍵字.
password為使用者的新密碼。WITH關鍵字後面可以帶有多個參數with_option,這個參數有五個取值。
GRANT OPTION:將自己的許可權授予其他使用者MAX_QUERIES_PER_HOUR count:設定每小時最多可以執行多少次(count)查詢。
MAX_UPDATES_PER_HOUR count:設定每小時最多可以執行多少次更新。
MAX_CONNECTIONS_PER_HOUR count:設定每小時最大的串連數量。
lMAX_USER_CONNECTIONS:設定每個使用者最多可以同時建立串連的數量。
查看許可權
SHOW GRANTS FOR ‘username‘@‘hostname‘;
收回許可權
為了保證資料庫的安全性,需要將使用者不必要的許可權收回
1、收回使用者指定許可權
REVOKE privileges [columns][,privileges[(columns)]] ON database.table
FROM ‘username‘@‘hostname‘[,‘username‘@‘hostname‘] …
2、收回使用者全部許可權
REVOKE ALL PRIVILEGES,GRANT OPTION
FROM ‘username‘@‘hostname‘ [,‘username‘@‘hostname‘] …
MySQL<資料庫的進階操作>