v2.5.2
Giriş yap

nodejs mysql hatası

memdhaci
454 defa görüntülendi ve 1 kişi tarafından değerlendirildi

merhaba node js ve mysql öğreniyorum veritabanımdaki tablodaki rowlarımı görmek için böyle bir kod yazdım

const mysql = require('mysql2')

let connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'sifrem',
    database: 'nodedb'
});

connection.connect(function(err){
    if (err) {
        console.log(err)
    }

    connection.query('select * from products', function(err, result) {
        console.log(result);
    });

    console.log('mysql bağlantısı yapıldı')
})
JavaScript

bu şekilde yaptığımda terminalimde ürünler listeleniyor sıkıntı yok fakat aşağıdaki gibi yaptığımda hata alıyorum

ayrı bir config.js dosyası açıyorum

const config = {
    db: {
        host: 'localhost',
        user: 'root',
        password: 'sifrem',
        database: 'nodedb'
    }
}

module.exports = config;
JavaScript

ve ilk yazdığım kodun başını da aşağıdaki gibi değiştiriyorum

const mysql = require('mysql2')
const config = require('./config');

let connection = mysql.createConnection(config);
JavaScript

fakat böyle yapınca çalışmıyor ve aşağıdaki hatayı alıyorum

Ignoring invalid configuration option passed to Connection: db. This is currently a warning, but in future versions of MySQL2, an error will be thrown if you pass an 
invalid configuration option to a Connection
port 3000 started
Error: Access denied for user ''@'localhost' (using password: YES)

  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlState: '28000',
  sqlMessage: "Access denied for user ''@'localhost' (using password: YES)",
  sql: undefined

bunun çözümü nedir bilen var mı?

Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (3)
bhebatu
618 gün önce

Merhaba! Sorununuzun çözümü, config.js dosyasında db nesnesini kullanmak yerine direkt olarak bağlantı bilgilerini aktarmaktır. Bunun için aşağıdaki gibi config.js dosyanızı düzenleyebilirsiniz:

const config = {
    host: 'localhost',
    user: 'root',
    password: 'sifrem',
    database: 'nodedb'
};

module.exports = config;
JavaScript

Ve main.js dosyanızı da aşağıdaki gibi düzenleyebilirsiniz:

const mysql = require('mysql2');
const config = require('./config');

let connection = mysql.createConnection(config);

connection.connect(function(err) {
    if (err) {
        console.log(err);
    }

    connection.query('SELECT * FROM products', function(err, result) {
        console.log(result);
    });

    console.log('MySQL bağlantısı yapıldı.');
});
JavaScript

Bu şekilde config.js dosyasından direkt olarak bağlantı bilgilerinizi alarak kodunuzun çalışmasını sağlayabilirsiniz. Umarım bu çözüm işinize yarar! Başka bir sorunuz olursa yardımcı olmaktan mutluluk duyarım.

tayfunerbilen
621 gün önce
let connection = mysql.createConnection(config);
JavaScript

yerine şöyle yapman lazım:

let connection = mysql.createConnection(config.db);
JavaScript
database
621 gün önce

"Access denied for user ''@'localhost' (using password: YES)" mesajından da anlayacağın kadarıyla kullanıcı adı tarafı boş geliyor.
bu konuyu mysql bağlanmıyor değil npm mysql2 modulünü araştır.