Я строю SMS-приложение nodejs. Это приложение будет получать данные (номера телефонов), которые находятся в базе данных MySQL другого веб-сайта, владельцем которого я являюсь в cPanel (например, example.org), в поле с именем Телефон, а также значениями Телефон. Это то, что у меня есть, но я получаю сообщение об ошибке. Пожалуйста, помогите указать любую возможную причину ошибки ниже. Я новичок, делаю свой первый проект, который буду размещать в heroku.
var express = require("express");
var mysql = require("mysql");
var app = express();
//Establishing connection
var con = mysql.createConnection({
host:"example.org",
user:"example_admin",
password:"*********",
database:"example_registerdb"
});
//Fetching the phone numbers from the phone column
con.connect(function(err){
if (err) throw err;
con.query("SELECT phone FROM phone", function(err, results, fields){
if (err) throw err;
console.info(results);
});
});
app.get('/', function(req, res){
res.send('Hello World');
});
var server = app.listen(3306, function(){
console.info('Listening on port 3306');
});Вот ошибка, которую я получаю в cmd:
E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\index.js:15
if (err) throw err;
^
Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\node_modules\mysql\lib\Connection.js:419:13)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at Socket.emit (events.js:208:7)
at Socket._onTimeout (net.js:420:8)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
--------------------
at Protocol._enqueue (E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\node_modules\mysql\lib\protocol\Protocol.js:145:48)
at Protocol.handshake (E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\node_modules\mysql\lib\protocol\Protocol.js:52:23)
at Connection.connect (E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\node_modules\mysql\lib\Connection.js:130:18)
at Object.<anonymous> (E:\Documents\Computer and Coding\PlayGround\PROJECTS\SMSAPI\index.js:14:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
Вы подключались к серверу mysql с любым другим клиентом, кроме этого? Я собираюсь поспорить, что порт 3306 (порт mysql по умолчанию) или любой другой порт, который прослушивает mysql, не доступен свободно через Интернет.
@rmlan теперь, когда он не раскрывается свободно, что делать дальше?
Вы не обновили свой вопрос. Мой комментарий был только предположением. Вы подтвердили, что порт не выставлен? Кому принадлежит этот сервер MySQL? Если вы не владеете им и порт не отображается, у вас действительно нет пути любой, если вы все еще хотите подключиться напрямую к серверу.
Он принадлежит моему PHP-сайту в cPanel. Затем я попробовал порт 3306 и все еще ту же ошибку. Пожалуйста, расскажите подробнее о порте ....



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пожалуйста, не задавайте вопросы, заголовки которых должны быть заглавными. Это только отвлечет внимание от вашего вопроса.