无法连接到[远程主机]上的MySQL服务器(远程主机通过ngrok)

时间:2020-06-20 14:12:35

标签: mysql tcp mysql-workbench ngrok

我目前正在尝试通读指南,以使用twilio构建自动电话系统并将其集成到MySQL数据库(https://www.twilio.com/blog/connect-local-database-twilio-functions)中。我遇到的问题是,使用ngrok建立隧道后,我无法连接到MySQL服务器。

这是我正在运行的命令:

mysql --protocol=tcp --host=0.tcp.ngrok.io --port 18477 --user=root -p

当我按run键时,终端处于空闲状态几分钟,然后输出: ERROR 2003 (HY000): Can't connect to MySQL server on '0.tcp.ngrok.io' (110)

这是ngrok的屏幕截图:

enter image description here

我已经按照https://linuxize.com/post/mysql-remote-access/中的步骤进行操作,以进一步了解如何设置对mysql的远程访问。在文章底部,它表示此错误通常表示“端口3306未打开,或者MySQL服务器未在侦听IP地址。”然后,我按照提供的链接检查了这两个链接。看了听的方面。

在遇到此错误时,我尝试进行一些研究以查看是否可以找出问题所在。我的网络经验为零,因此我不了解客户端和服务器等基础知识。我遇到了mysql文档(https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html)。

它说:“如果服务器是使用skip_networking系统变量启动的,则它将根本不接受TCP / IP连接。”此外,它继续说:“如果服务器是在将bind_address系统变量设置为127.0.0.1的情况下启动的,则它将仅在环回接口上本地侦听TCP / IP连接,而不会接受远程连接。”

我已经对各种文档和文章进行了修改。以下是一些图片,展示了我的设置:

下图是MySQL Workbench的屏幕截图。我的绑定地址对所有人开放,并且不限于本地连接(bind_address中的etc/mysql/mysql.conf.d已被注释掉)。此外,端口设置为3306。最后,未选中skip-networking,因此可能发生TCP / IP。 enter image description here

要确认MySQL正在侦听端口3306,我用lsof运行了这个iTCP:3306命令。我相信这告诉我mysql正在侦听3306。我不确定USER是否指向运行mysqld的用户,但是如果是,我不确定这在{{1 }}和其他用户。

enter image description here

我希望这看似微不足道,但是由于缺乏网络知识,我很容易忽略一些简单的事情。可以提供任何其他信息。

1 个答案:

答案 0 :(得分:0)

当通过ngrok设置的主机名连接到MySql时,不要使用端口3306。而是使用ngrok为您分配的端口。在您的示例中为18447。