【发布时间】:2020-06-20 14:12:35
【问题描述】:
我目前正在尝试通过指南来使用 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
当我按下运行时,终端会闲置几分钟,然后输出:
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 的截图。我的绑定地址对所有人开放,并且不限于本地连接(etc/mysql/mysql.conf.d 中的bind_address 被注释掉了)。此外,端口设置为 3306。最后,skip-networking 未被检查,因此 TCP/IP 可能发生。
为了确认 MySQL 正在侦听端口 3306,我使用 iTCP:3306 运行了这个 lsof 命令。我相信这告诉我mysql正在监听3306。我不确定USER是否指的是mysqld正在运行的用户,但如果是,我不确定这在root和其他的上下文中意味着什么用户。
我希望这看起来微不足道,但由于网络知识很少,我很容易忽略一些简单的事情。可以提供任何其他信息。
【问题讨论】:
-
我还没有弄清楚。
标签: mysql tcp mysql-workbench ngrok