本人在阿里雲買了個服務器,自帶mysql,感覺不能每次都通過Xshell去操作遠程服務器,想嘗試通過本地的sqlyog管理工具去連接, 但是即使賬號密碼全正確,也會報錯:error no. 1045 access denied for user 'root'@'*****' (using password:YES)。
百翻查詢才知道:MySql-Server 出於安全方面考慮默認只允許本機(localhost, 127.0.0.1)來連接訪問.
!!!所以必須給root修改可以遠程訪問的權限
1.在連接服務器后,操作mysql系統數據庫
命令為: mysql -u root -p
use mysql;
查詢用戶表命令:select User,authentication_string,Host from user
這里也可以看出host默認都是localhost訪問權限
接下來就是最重要的部分了:
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
這里的123456為你給新增權限用戶設置的密碼,%代表所有主機,也可以具體到你的主機ip地址
2.flush privileges; 這一步一定要做,不然無法成功! 這句表示從mysql數據庫的grant表中重新加載權限數據
因為MySQL把權限都放在了cache中,所以在做完更改后需要重新加載。
執行完這兩步,再次查詢用戶表命令:select User,authentication_string,Host from user
發現多了一個用戶,該用戶所有的主機都可以訪問,此時再次用sqlyog訪問連接成功!