v2.5.2
Giriş yap

nodejs mysql hatası

memdhaci
355 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ı')
})

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;

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);

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ı?

bhebatu
475 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;

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ı.');
});

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.