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