nodejs mysql hatası
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ı?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
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.
let connection = mysql.createConnection(config);
yerine şöyle yapman lazım:
let connection = mysql.createConnection(config.db);