如何使用IP而不是“localhost”连接到MySQL数据库?
如果我的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部分,如果树莓派和数据库都连接到互联网而不是局域网,我想要做同样的场景。
我希望我解释正确的问题。 在此先感谢。
对于第1部分: 我检查该foll欠款问题已解决
Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server。
我认为它在使用树莓派时会以同样的方式工作。
第2部分有点棘手,因为你必须打开你的MySQL安装到互联网。更好地使用SSH隧道来保护连接。然后,您应该能够像在局域网中那样进行连接(如果SSH和MySQL服务器都在同一个框上运行,那么您甚至可以使用本地主机)。 –
@MikeLischke非常感谢您的帮助,如果您推荐了解如何使用SSH隧道的资源,我将不胜感激。 –
手边没有任何东西,但您的首选搜索引擎应该提供链接:-D –
而不是使用本地主机给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
你应该改善你的问题,使其更容易理解。如果我没有错,你想知道在你的Node js服务器设置中更改MySQL服务器地址的位置,对吗?这与MySQL Workbench无关。 –
@MikeLischke 我编辑了这个问题,我希望现在好一点。谢谢 –
你有什么确切的错误信息?这可能是因为您没有允许用户从您的IP地址进行连接(当您通过本地主机进行连接时,不会使用该用户)。另见https:// dev。mysql.com/doc/refman/5.7/en/create-user.html –