1. 程式人生 > >navicat無法連線阿里雲mysql

navicat無法連線阿里雲mysql

阿里雲伺服器上布了一個mysql,然後本地想要通過navicat連線,一直連線不上。

後來索性本地telent阿里雲伺服器的3306埠,發現連不通,於是想到3306埠並沒有對外開放。一開始以為是linux伺服器的防火牆,不過查看了伺服器的防火牆等等也都沒有開。

後來才知道,阿里雲的伺服器預設埠是不對外開放的,如果想要供外部訪問,需要在安全組中手動新增規則。。。。這是個大坑啊

這裡寫圖片描述

新增規則之後,再用navicat連,報另一條錯誤

1045 access denied for user'root'@'localhost' using password yes

猜想是因為我本地使用root使用者登入navicat,而root使用者並沒有開放外部的訪問許可權,而是隻能localhost訪問

下一步登陸mysql資料庫,使用命令

這裡寫圖片描述

果然root使用者的訪問許可權是localhost,並不能從外部進行訪問,需要手動賦權

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;

好了,這下又報錯

 Your password does not satisfy the current policy requirements

也就是密碼強度不符合,我也是醉了,使用下面的命令可以檢視設定的密碼強度校驗規則

SHOW VARIABLES LIKE 'validate_password%'
;

這裡寫圖片描述

果然是有很麻煩的校驗,網上有很多去除這個校驗的方法,不過都需要修改配置檔案然後重啟資料庫,個人覺得有點麻煩,還有一種臨時辦法可以去除密碼強度校驗(不過下次登入又得用一遍,好處是不需要重啟)

set global validate_password_policy=0;

好了,再輸入上面的對root使用者賦權的命令,大功告成

這裡寫圖片描述

OK,到這裡,伺服器的3306埠也對外開放了,root使用者也可以從外部進行訪問了,navicat連線成功