Проблема с подключением моего экспресс-сервера на героку к удаленному mySQL
Я пытаюсь развернуть мой экспресс-сервер на Heroku, который должен подключиться к удаленной базе данных MySQL.
Я использовал 'heroku config:add DATABASE_URL=mysql://dbusername:dbpassword@databasehostIP:databaseserverport/databasename с правильной информацией, но все равно он пытается подключиться по неправильному адресу.
Я также использовал 'heroku config:add EXTERNAL_DATABASE_URL=mysql://dbusername:dbpassword@databasehostIP:databaseserverport/databasename с правильной информацией, но все же он пытается подключиться через неправильный адрес.
В моей панели приложения Heroku в разделе "Настройки" в разделе "Конфигурационные переменные" я вижу, что DATABASE_URL и EXTERNAL_DATABASE_URL появились с правильной информацией. но в логе героку я все равно вижу неверную информацию
Это моя переменная sequelize на экспресс-сервере:
const sequelize = new Sequelize('dbName', 'USER', 'Password', {
host:"hostAddress",
dialect: 'mysql'
}
Но я вижу следующее в журнале Heroku:
2019-02-16T18:31:42.231390+00:00 app[web.1]: Unhandled rejection
SequelizeAccessDeniedError: Access denied for user
'USER'@'ec2-54-162-8-141.compute-1.amazonaws.com' (using
password: YES)
Как я могу изменить 'ec2-54-162-8-141.compute-1.amazonaws.com' на адрес удаленного хоста MySQL?
1 ответ
Попробуйте установить переменную примерно так:
if (process.env.DATABASE_URL) {
const sequelize = new Sequelize(process.env.DATABASE_URL, {
define: {
freezeTableName: true, // don't make plural table names
underscored: true // don't use camel case
},
dialect: 'mysql',
dialectOptions: {
ssl: true
},
logging: true,
protocol: 'mysql',
quoteIdentifiers: false // set case-insensitive
});
} else {
console.log('Fatal error: DATABASE_URL not set');
process.exit(1);
}