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

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