不過,可以的話,我們還是另建管理帳號來代理root吧。
CREATE USER 'bullock'@'%' IDENTIFIED BY '***';
GRANT ALL PRIVILEGES ON * . * TO 'bullock'@'%' IDENTIFIED BY '***'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'bullock'@'localhost' IDENTIFIED BY PASSWORD '*20530A1F9D6C99E3731DD458DC80480713F66BEF';
GRANT ALL PRIVILEGES ON * . * TO 'bullock'@'localhost' IDENTIFIED BY PASSWORD '*20530A1F9D6C99E3731DD458DC80480713F66BEF'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
初始設定MySQL
安裝MySQL之後,假設MySQL已經安裝完成並順利運行,在命令行中鍵入:
> mysql -uroot
這樣會第一次進入MySQL環境,這時,進入mysql這database,再設定您的MySQL root密碼了:
mysql> USE mysql;
Database changed
mysql> UPDATE user SET password=password('AbCdEfG') WHERE user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
UPDATE 命令會將user這table內root這個用戶的密碼重新記錄。
為了系統的安全,建議刪除空帳戶:
mysql> DELETE FROM user WHERE User = '';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
即時更新上述作出的更改:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
這時可以離開MySQL,再試試新的密碼:
mysql> exit
Bye
> mysql mysql -uroot -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.0.20a-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
這樣便應該成功了,設定好root密碼以後,進入mysql便得用如上面的指令方式:
> mysql 資料庫名稱 -u使用者名稱 -p
留意 -u後面不應該有空格。
一些常用指令
新增資料庫
在操作系統的命令行裡,打入
> mysqladmin -uroot -p根帳戶密碼 create 資料庫名稱
檢視現有資料庫
你可以看看剛才新建的資料庫是否真的存在(假設剛才新資料庫叫test):
先用mysql mysql -uroot -p如常進入mysql,再鍵入
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
進入資料庫
mysql> USE 資料庫名稱
檢視資料庫內的資料表
mysql> SHOW TABLES;
假如你剛才執行了USE mysql,那麼結果將會是這樣子
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
6 rows in set (0.00 sec)
刪除資料庫
在操作系統的命令行裡,打入
> mysqladmin -uroot -p根帳戶密碼 drop 資料庫名稱
關閉MySQL服務
> mysqladmin -uroot -p根帳戶密碼 shutdown
基本帳戶管理
先用mysql mysql -uroot -p如常進入mysql……
新增新用戶 (方法一)
mysql> INSERT INTO user VALUES('hostname','username',password('passwd'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
hostname:該用戶登入連線來源的主機完整名稱,本機使用者鍵入localhost
username:新用戶的登入名稱
passwd:代表新用戶的密碼
後面是十四項用戶的權限選項,可以是'y'或'n',十四個選項依次序為:
1.Select_priv 2.Insert_priv 3.Update_priv 4.Delete_priv 5.Index_priv
6.Alter_priv 7.Create_priv 8.Drop_priv 9.Grant_priv 10.References_priv
11.Reload_priv 12.Shutdown_priv 13.Process_priv 14.File_priv
新增新用戶 (方法二,建議使用)
以下命令可用來更新現有帳號資料或創建新帳號:
mysql> GRANT 權限 ON 資料庫(或資料表) TO username@hostname IDENTIFIED BY 'passwd';
權限共有3類如下:
對資料庫(Datebase),有十五種權限:
ALL PRIVILEGES ALTER CREATE DELETE DROP
FILE INDEX INSERT PROCESS REFERENCES
RELOAD SELECT SHUTDOWN UPDATE USAGE
對資料表(Table)則只有八種權限:
SELECT INSERT UPDATE DELETE CREATE
DROP INDEX ALTER
對資料欄(column)則只有三種權限:
SELECT INSERT UPDATE
關於username@hostname:
和方法一相同意義,例:leehc2@mail.itzone.info 表示是來自mail.itzone.info主機的leehc2用戶。可使用萬用字元,但必須加上括號,例:('lee%'@'%.itzone.info')表示從.itzone.info網域來的lee開頭的帳戶。
除管理人員外,一般帳號盡量避免設定全部權限開啟,只開啟SELECT、INSERT、UPDATE三項權限已足夠;進階的用戶可加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限盡量不用開啟,以確保整個MySQL的安全性。
例子示範:
1. 新增來自host的帳號user,並給予全部權限
mysql> GRANT ALL PRIVILEGES ON *.* TO user@host IDENTIFIED BY 'passwd';
2. 新增來自host的帳號user,並指定datab_name資料庫與特定權限給該帳號
mysql> GRANT SELECT,INSERT,UPDATE ON datab_name.* TO user@host IDENTIFIED BY 'passwd';
刪除使用者帳號與權限
mysql> REVOKE 權限 ON 資料庫(或資料表) FROM username@hostname IDENTIFIED BY 'passwd';
這命令會將帳號的相關權限關閉,但不會做Delete的動作,真要刪除帳戶便要用DELETE命令。
立即執行更新
mysql> FLUSH PRIVILEGES;
I fall in love with LINUX. How about you? 


0 意見:
張貼意見