2015-11-21 42 views
2

我用服務器數據庫數據(不是本地主機)更新了.env文件,但無法通過命令提示符連接到它。無法通過命令提示符連接到mysql服務器[Laravel]

DB_HOST=vps.sitename.com 
DB_DATABASE=name_of_my_database 
DB_USERNAME=myusername 
DB_PASSWORD=mypassword 

當我嘗試在命令行中訪問數據庫,像這樣:

mysql -umyusername -pmypassword 

我得到如下回應:

Access denied for user 'mysuername'@'localhost' (using password: YES) 

你知道,任何解決方案問題?

回答

1

mysql命令不使用.env文件,只有Laravel。如果您未將主機名傳遞給該命令,它將嘗試連接到localhost,如您從錯誤消息中看到的那樣。您可以通過-h--host選項傳遞給命令,像這樣:

mysql -h vps.sitename.com -umyusername -pmypassword 

您還需要確保在vps.sitename.com MySQL服務器允許遠程連接和用戶myusername被允許從您的IP連接地址。

0

將.env文件中的憑據添加到您的服務器並不意味着如果在MySQL中未添加/授予localhost,則可以訪問數據庫,因爲mysql命令甚至沒有首先使用.env文件。

您將需要訪問權限授予 'mysuername' @在MySQL中的 'localhost' 是這樣的:

GRANT ALL ON *.* TO 'myusername'@'localhost'; 

然後不要忘記沖水就像特權:

FLUSH PRIVILEGES 

這是假設你創建了'myusername'@'localhost';

否則,你需要做到以下幾點:

CREATE USER 'myusername'@'localhost' IDENTIFIED BY 'mypass'; 
GRANT ALL ON *.* TO 'myusername'@'localhost'; 
FLUSH PRIVILEGES 

然後不要忘記您的地址在my.cnf綁定,以便遠程,如果適用於訪問,如:

#Replace xxx with your IP Address 
bind-address  = xxx.xxx.xxx.xxx 

這應該做到這一點。

希望一切都適合你。

+0

遠程連接時,剛剛描述的內容不起作用。您剛纔描述的熱點定義了一個可以在本地連接的用戶,而且問題清楚地表明意圖是連接到遠程服務器。 – Bogdan

+0

請閱讀我的整個回覆!你需要綁定地址。並且花時間爲你提供回覆應該始終被認爲是積極的,懲罰某人抽出時間來幫助他人只會阻礙任何幫助他人的舉措! – codewizard

+0

不需要生氣。您已在**發佈我的評論後幾秒**編輯了您的回覆,因此當時我無法閱讀**全部**。 – Bogdan