最近在Linux上安裝了Mysql,然后在Windows環(huán)境下通過Navicat來連接時啦粹,出現(xiàn)報錯:1045 Access denied for user 'root'@'XXX' (using password: YES)偿荷,如下:
連接報錯
首先窘游,在Linux中是可以正常登錄mysql,所以不會是用戶密碼錯誤導(dǎo)致的跳纳。
接著忍饰,我考慮到可能與防火墻有關(guān),于是檢查了Linux下的防火墻是否開放了對應(yīng)端口寺庄,發(fā)現(xiàn)此時的防火墻是關(guān)閉狀態(tài)艾蓝,因此可以排除防火墻的影響。
最后斗塘,突然想到默認(rèn)情況下mysql的root用戶是不能遠(yuǎn)程連接的饶深,于是在Linux中登錄mysql,發(fā)現(xiàn)果然是這個原因逛拱,解決過程如下:
- 1.登錄mysql敌厘,命令:
mysql -u root -p
,然后輸入密碼即可朽合。
登錄mysql
- 2.查看mysql庫中的user表的host字段
使用mysql庫:use mysql
查詢信息:select user,host from user
查詢結(jié)果
host字段中俱两,localhost表示只允許本機訪問,要實現(xiàn)遠(yuǎn)程連接曹步,可以將root用戶的host改為%宪彩,%表示允許任意host訪問,如果需要設(shè)置只允許特定ip訪問讲婚,則應(yīng)改為對應(yīng)的ip尿孔。
3.修改root用戶的host字段,命令:
update user set host="%" where user="root"
4.使本次修改立即生效筹麸,命令:
flush privileges
修改后的結(jié)果
最后活合,在windows下的Navicat中遠(yuǎn)程連接,便不會報錯了物赶。
連接成功