bin/msyql -h host -u user -p
bin/mysql -u mysql -p 本地登錄 如無密碼按回車直接進入mySql
bin/mysqladmin -u root -p 原密碼 password 123456 修改mysql 的 root密碼為 123456
bin/mysqladmin -u root password 123456 修改mysql 的 root密碼為 123456
前提是必須用 root 登錄 mysql
UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';
flush privileges;
登錄后修改用戶密碼,退出再重新登錄就需要密碼了;
update mysql.user set password=PASSWORD('123456') where user='mysql' and Host="localhost";
flush privileges;
刪除用戶
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
mysql>flush privileges;
//刪除用戶的數據庫
mysql>drop database phplampDB;
新建登錄MYSQL用戶 用 root 登錄:創建了一個名為:phplamp 密碼為:1234 的用戶。
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
mysql>flush privileges;
創建權限的語法:(把密碼改成了 password identified by 相當於把密碼給修改了)
grant
privileges (columns) on what to user identified by "password" with grant option
給 mysql 用戶最大的權限
GRANT ALL ON *.* TO
mysql@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION
GRANT Select ON samp_db.member TO bill@localhost INDETIFIED BY "rock"
GRANT Update (expiration) ON samp_db. member TO bill@localhost
第一條語句授予對整個member表的讀權限並設置了一個口令,第二條語句增加了Update權限,當只對expiration列。沒必要再指定口令,因為第一條語句已經指定了。
GRANT Select ON samp_db TO ro_user@% INDETIFIED BY "rock"
第一條語句向bill授權samp_db數據庫中所有表的權限,第二條創建一個嚴格限制訪問的用戶ro_user(只讀用戶),只能訪問samp_db數據庫中的所有表,但只有讀取,即用戶只能發出Select語句。
show grants for 'mysql'@'localhost' 查看權限
GRANT
ALL PRIVILEGES ON *.* TO 'mysql'@'localhost’ WITH GRANT OPTION 賦予mysql最高權限;
所有的權限為:
Alter 修改表和索引
Create 創建數據庫和表
Delete 刪除表中已有的記錄
Drop 拋棄(刪除)數據庫和表
INDEX 創建或拋棄索引
Insert 向表中插入新行
REFERENCE 未用
Select 檢索表中的記錄
Update 修改現存表記錄
FILE 讀或寫服務器上的文件
PROCESS 查看服務器中執行的線程信息或殺死線程
RELOAD 重載授權表或清空日志、主機緩存或表緩存。
SHUTDOWN 關閉服務器
ALL 所有;ALL PRIVILEGES同義詞
USAGE 特殊的“無權限”權限
columns 權限運用的列,它是可選的,並且你只能設置列特定的權限。如果命令有多於一個列,應該用逗號分開它們。
what 權限運用的級別。權限可以是全局的(適用於所有數據庫和所有表)、特定數據庫(適用於一個數據庫中的所有表)或特定表的。可以通過指定一個columns字句是權限是列特定的。
user 權限授予的用戶,它由一個用戶名和主機名組成。在MySQL中,你不僅指定誰能連接,還有從哪里連接。這允許你讓兩個同名用戶從不同地方連接。 MySQL讓你區分他們,並彼此獨立地賦予權限。MySQL中的一個用戶名就是你連接服務器時指定的用戶名,該名字不必與你的Unix登錄名或 Windows名聯系起來。缺省地,如果你不明確指定一個名字,客戶程序將使用你的登錄名作為MySQL用戶名。這只是一個約定。你可以在授權表中將該名 字改為nobody,然后以nobody連接執行需要超級用戶權限的操作。
password 賦予用戶的口令,它是可選的。如果你對新用戶沒有指定IDENTIFIED BY子句,該用戶不賦給口令(不安全)。對現有用戶,任何你指定的口令將代替老口令。如果你不指定口令,老口令保持不變,當你用IDENTIFIED BY時,口令字符串用改用口令的字面含義,GRANT將為你編碼口令,不要你用SET PASSWORD 那樣使用password()函數。
WITH GRANT OPTION 子句是可選的。如果你包含它,用戶可以授予權限通過GRANT語句授權給其它用戶。你可以用該子句給與其它用戶授權的能力。
修改及刪除權限操作:http://linux.chinaitlab.com/MYSQL/919856_1.html
REVOKE語句 取消一個用戶的權限 REVOKE的語法非常類似於GRANT語句,除了TO用FROM取代並且沒有INDETIFED BY和WITH GRANT OPTION子句
REVOKE privileges (columns) ON what FROM user
user 部分必須匹配原來GRANT語句的你想撤權的用戶的user部分。
privileges 部分不需匹配,你可以用GRANT語句授權,然后用REVOKE語句只撤銷部分權限。
REVOKE 語句只刪除權限,而不刪除用戶。即使你撤銷了所有權限,在user表中的用戶記錄依然保留,這意味着用戶仍然可以連接服務器。要完全刪除一個用戶,你必須用一條Delete語句明確從user表中刪除用戶記錄:
%mysql -u root mysqlmysql>Delete FROM user
->Where User="user_name" and Host="host_name";
mysql>FLUSH PRIVILEGES;
Delete 語句刪除用戶記錄,而FLUSH語句告訴服務器重載授權表。(當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是。)