在項目開發的過程中可能需要開放自己的數據庫給別人,但是為了安全不能自己服務器裡其他數據庫同時開放。那麼可以新建一個用戶,給該用戶開放特定數據庫權限
測試環境:Centos 6.3和Mysql 5.3
一、新建用戶
復制代碼 代碼如下:
//登錄MYSQL
@>mysql -u root -p
@>密碼
//創建用戶
mysql> insert into mysql.user(Host,User,Password) values("localhost","cplusplus",password("cplusplus.me"));
//刷新系統權限表
mysql>flush privileges;
這樣就創建了一個名為:cplusplus 密碼為:cplusplus.me 的用戶。
二、登錄測試
mysql>exit; @>mysql -u cplusplus -p @>輸入密碼 mysql>登錄成功
三、用戶授權
//登錄MYSQL @>mysql -u root -p @>密碼 //首先為用戶創建一個數據庫(cplusplusDB) mysql>create database cplusplusDB; //授權cplusplus用戶擁有cplusplusDB數據庫的所有權限。 >grant all privileges on cplusplusDB.* to cplusplus@localhost identified by 'cplusplus.me'; //刷新系統權限表 mysql>flush privileges; mysql>其它操作
四、部分授權
mysql>grant select,update on cplusplusDB.* to cplusplus@localhost identified by 'cplusplus.me'; //刷新系統權限表。 mysql>flush privileges;
五、刪除用戶
@>mysql -u root -p @>密碼 mysql>DELETE FROM user WHERE User="cplusplus" and Host="localhost"; mysql>flush privileges;
六、刪除數據庫
mysql>drop database cplusplusDB;
七、修改密碼
@>mysql -u root -p @>密碼 mysql>update mysql.user set password=password('新密碼') where User="cplusplus" and Host="localhost"; mysql>flush privileges;
給大家分享一則網友的經驗:
1.新建用戶
用戶root權限登錄mysql,新建一個和數據庫同名的用戶
mysql> INSERT INTO mysql.user(Host,User,Password) VALUES('localhost', 'sun', password('sun123456'));
刷新系統權限表
mysql> FLUSH PRIVILEGES;
如果報錯
#1364 – Field ‘ssl_cipher' doesn't have a default value
修改MySQL配置文件linux系統為my.cnf,windows系統為my.ini
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
修改為
sql_mode=NO_ENGINE_SUBSTITUTION
重啟MySQL服務
2.為用戶授權
mysql> GRANT ALL ON sun.* to sun@localhost identified BY 'sun123456'; mysql> FLUSH PRIVILEGES;