我目前正在尝试通读指南,以使用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的屏幕截图:
我已经按照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。
要确认MySQL正在侦听端口3306,我用lsof
运行了这个iTCP:3306
命令。我相信这告诉我mysql正在侦听3306。我不确定USER
是否指向运行mysqld的用户,但是如果是,我不确定这在{{1 }}和其他用户。
我希望这看似微不足道,但是由于缺乏网络知识,我很容易忽略一些简单的事情。可以提供任何其他信息。
答案 0 :(得分:0)
当通过ngrok设置的主机名连接到MySql时,不要使用端口3306。而是使用ngrok为您分配的端口。在您的示例中为18447。