mysql管理(转载)
对不起作者,出处本来复制下来了,一不小心找不到了.MySQL常用指令及帳戶管理
初始化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> create 資料庫名稱
檢視現有資料庫
你可以看看剛才新建的資料庫是否真的存在(假設剛才新資料庫叫test):
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)
刪除資料庫
mysql> drop 資料庫名稱
關閉MySQL服務
mysql> shutdown
基本帳戶管理
新增新用戶(方法一)
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:
例:[email protected] 表示是來自mail.itzone.info主機的leehc2用戶。可使用萬用字元,但必須加上括號,例:('lee%'@'%.itzone.info')表示從.itzone.info網域來的lee開頭的帳戶。
除管理人員外,一般帳號盡量避免設定全部權限開啟,只開啟SELECT、INSERT、UPDATE三項權限已足夠;進階的用戶可加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限盡量不用開啟,以確保整個MySQL的安全性。
ext:
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;