Как связать базу данных MySQL с nodejs из облака Google - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть приложение NodeJs и база данных MySQL.Я развернул приложение nodejs в облаке Google и создал базу данных MySQL в google cloud и подключился к приложению nodejs. Я могу успешно развернуть приложение, но приложение не может подключиться к облачной базе данных mysql.

Но когда я пытаюсьчтобы подключить облако MySQL из моего локального рабочего места MySQL, он успешно подключается к базе данных.и я могу подключиться к облачной базе данных mysql из локального приложения nodejs

, но не могу подключиться из развернутого приложения nodejs к облаку mysql db

ошибка Database is not connectedError: connect ETIMEDOUT

Db.js

var mysql = require('mysql');
var PropertiesReader = require('properties-reader');
var properties = PropertiesReader('./db.properties');

var connection = mysql.createConnection({
    connectionLimit : properties.get('pool'),
    host: properties.get('hostname'),
    user: properties.get('username'),
    password: properties.get('password'),
    database: properties.get('dbname')
});

connection.connect(function (err) {
    if (!err) {
        console.log("Database is connected");
    } else {
        console.log("Database is not connected" + err);
    }
}
);

module.exports = connection;

app.yaml

runtime: nodejs
env: flex

1 Ответ

0 голосов
/ 30 сентября 2018

В вашей конфигурации соединения для mysql, хост не работает на App Engine.Вы должны использовать socketPath.socketPath - это путь к сокету домена Unix для подключения.Путь к сокету должен быть примерно таким:

var connection = mysql.createConnection({ sockePath : '/cloudsql/my-project-12345:us-central1:mydatabase', user : 'username', password : 'password', database : 'db_name' });

Это аналогичный процесс, если вы используете Postgres на GCloud, на который вы получите ответ здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...