2017-02-21 170 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