MySQL 默認(rèn)有個(gè)
root
用戶,但是這個(gè)用戶權(quán)限太大,一般只在管理數(shù)據(jù)庫(kù)時(shí)候才用。如果在項(xiàng)目中要連接 MySQL 數(shù)據(jù)庫(kù),則建議新建一個(gè)權(quán)限較小的用戶來連接。
在 MySQL 命令行模式下輸入如下命令可以為 MySQL 創(chuàng)建一個(gè)新用戶:
CREATE USER username IDENTIFIED BY 'password';
新用戶創(chuàng)建完成,但是此刻如果以此用戶登陸的話,會(huì)報(bào)錯(cuò),因?yàn)槲覀冞€沒有為這個(gè)用戶分配相應(yīng)權(quán)限,分配權(quán)限的命令如下:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
授予username用戶在所有數(shù)據(jù)庫(kù)上的所有權(quán)限。
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'address' IDENTIFIED BY 'backup_xxx';
?創(chuàng)建主從同步數(shù)據(jù)的賬號(hào)
如果此時(shí)發(fā)現(xiàn)剛剛給的權(quán)限太大了,如果我們只是想授予它在某個(gè)數(shù)據(jù)庫(kù)上的權(quán)限,那么需要切換到root 用戶撤銷剛才的權(quán)限,重新授權(quán):
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
GRANT ALL PRIVILEGES ON dbnames.* TO 'username'@'localhost' IDENTIFIED BY 'password';
甚至還可以指定該用戶只能執(zhí)行 select 和 update 命令:
GRANT SELECT, UPDATE ON dbnames.* TO 'username'@'localhost' IDENTIFIED BY 'password';
這樣一來,再次以u(píng)sername登陸 MySQL,只有dbnames數(shù)據(jù)庫(kù)是對(duì)其可見的,并且如果你只授權(quán)它select權(quán)限,那么它就不能執(zhí)行除select之外的語(yǔ)句。
另外每當(dāng)調(diào)整權(quán)限后,通常需要執(zhí)行以下語(yǔ)句刷新權(quán)限:
FLUSH PRIVILEGES;
刪除剛才創(chuàng)建的用戶:
DROP USER username@localhost;
仔細(xì)上面幾個(gè)命令,可以發(fā)現(xiàn)不管是授權(quán),還是撤銷授權(quán),都要指定響應(yīng)的host(即 @ 符號(hào)后面的內(nèi)容),因?yàn)橐陨霞案衩顚?shí)際上都是在操作mysql數(shù)據(jù)庫(kù)中的user表,可以用如下命令查看相應(yīng)用戶及對(duì)應(yīng)的host:
SELECT User, Host FROM user;
當(dāng)然,這個(gè)表中還包含很多其它例如用戶密碼、權(quán)限設(shè)置等很多內(nèi)容,操作時(shí)候尤其需要小心。
忘記Root密碼:
開啟防火墻,確保在其他人不會(huì)連接到數(shù)據(jù)庫(kù)的時(shí)候:
關(guān)閉Mysql,并修改配置文件(my.cnf): 在
[mysqld]
下面添加:
skip-grant-tables
。
重啟mysql,連接之后即可修改root密碼
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
