Невозможно подключиться к mysql из клиента node.js, используя .my.cnf в домашнем каталоге

У меня в .my.cnf файл в моем домашнем каталоге есть следующее. На самом деле у меня будет больше записей для других баз данных с разными суффиксами к «клиенту». Но пока для проверки у меня есть простой файл .my.cnf, например:

   [client]
   database=db1
   user=user1 
   password=user123
   host=localhost

В моей программе Nodejs я использую следующие параметры подключения:

var dbConn  = { 
    user: 'user1',
    database: 'db1'
};

Я ожидаю, что он подключится, потому что пароль находится в .my.cnf. Это не так, дает следующую ошибку:

 code: 'ER_ACCESS_DENIED_ERROR',
 errno: 1045,
 sqlMessage: 'Access denied for user \'user1\'@\'localhost\' (using password: NO)',
  sqlState: '28000',

Если я помещаю пароль в объект подключения dbConn, он работает. Если я запустил командную строку mysql без указания пароля, я смогу подключиться, используя пароль из файла .my.cnf.

2
0
166
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ждать. Вы только что отдельно написали файл .cnf. Это не сработает. NodeJS не подхватит его автоматически. Вам нужно использовать его с соединителем mysql. Например:

var ini = require('node-ini');
var mysql= require('mysql');

var config = ini.parseSync('/path/to/your/.my.cnf');

mysql.createPool({
                user: config.user,
                password: config.password,
                database: 'db1'
});
  1. Источник: https://github.com/mysqljs/mysql/issues/1676#issuecomment-289247509
  2. узел mysql - https://www.npmjs.com/package/mysql

Спасибо. Я нашел это решение на основе предыдущего ответа, добавленного, но теперь удаленного. Пакет node-ini слишком велик для этого. Я просто написал простой парсер для ограниченной и простой конфигурации файла .my.cnf, которую мне нужно использовать.

Sunny 10.09.2018 12:34

Я пробовал это, но не могу найти файл в каталоге. @Sunny, ты можешь помочь с более простым решением, которое ты пробовал?

lazysnoozer 22.06.2020 08:50

@ ishmam999 Какой файл вы не можете найти?

Sunny 22.06.2020 09:12

Другие вопросы по теме