2017-02-21 174 views
-1

如果我的Raspberry pi上有節點js服務器。 和我的筆記本電腦上的MySQL數據庫。 覆盆子pi和我的筆記本電腦都連接到同一個局域網。如何使用IP而不是「localhost」連接到MySQL數據庫?

筆記本電腦IP:192.168.1.2

樹莓派IP:192.168.1.3

第1部分,我怎樣才能從樹莓派服務器發送數據到MySQL數據庫在我的筆記本電腦?

起初我還以爲是我必須做的是主機字段從「localhost」改成「192.168.1.2」改變,但是這似乎並沒有工作,因爲:

我創建了一個節點JS服務器在我的筆記本電腦上(因爲我現在沒有樹莓派),並試圖連接到它的數據庫來存儲數據,它的工作完美。但是,當我試圖主機字段從「本地主機」更改爲「192.168.1.2」,這是在局域網上它無法連接,並投擲了錯誤的筆記本電腦地址:

ER_HOST_NOT_PRIVILEGED:主機「安瓦爾-PC」是不允許連接到這個MySQL服務器

代碼:

var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'user1', 
    password: 'password1', 
    database: 'database1' 
}); 

而且我通過執行以下操作創建一個用戶:

drop user [email protected]; 
flush privileges; 
create user [email protected] identified by 'password1'; 
GRANT USAGE ON *.* to [email protected]; 
GRANT ALL ON database1.* TO [email protected]; 

第2部分,如果樹莓派和數據庫都連接到互聯網而不是局域網,我想要做同樣的場景。

我希望我解釋正確的問題。 在此先感謝。

+0

你應該改善你的問題,使其更容易理解。如果我沒有錯,你想知道在你的Node js服務器設置中更改MySQL服務器地址的位置,對嗎?這與MySQL Workbench無關。 –

+0

@MikeLischke 我編輯了這個問題,我希望現在好一點。謝謝 –

+0

你有什麼確切的錯誤信息?這可能是因爲您沒有允許用戶從您的IP地址進行連接(當您通過本地主機進行連接時,不會使用該用戶)。另見https:// dev。mysql.com/doc/refman/5.7/en/create-user.html –

回答

0

對於第1部分: 我檢查該foll欠款問題已解決

Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server

我認爲它在使用樹莓派時會以同樣的方式工作。

+0

第2部分有點棘手,因爲你必須打開你的MySQL安裝到互聯網。更好地使用SSH隧道來保護連接。然後,您應該能夠像在局域網中那樣進行連接(如果SSH和MySQL服務器都在同一個框上運行,那麼您甚至可以使用本地主機)。 –

+0

@MikeLischke非常感謝您的幫助,如果您推薦瞭解如何使用SSH隧道的資源,我將不勝感激。 –

+0

手邊沒有任何東西,但您的首選搜索引擎應該提供鏈接:-D –

-1

而不是使用本地主機給IP CLI

外殼>mysql --host=192.168.1.2 --user=myname --password=mypass mydb OR

外殼>mysql -h 192.168.1.2 -u myname -pmypass mydb

參考here