Selam, MySQL veritabanını, NodeJS ile bağlamaya çalışıyorum, normal yazdığımda bağlanıyor, fakat .env dosyası ile denediğimde bağlanmıyor, internete baktım biraz ama çözemedim. Yardım eder misiniz?
Not: Dotenv'nin config kısmına path vererek yapmayı denedim o da olmadı. Hepsi aynı klasörde.
Hata;
Kod:
C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (C:\Users\trfur\Desktop\dbServer\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (node:events:527:28)
at addChunk (node:internal/streams/readable:315:12)
--------------------
at Protocol._enqueue (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at PoolConnection.connect (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\Connection.js:116:18)
at Pool.getConnection (C:\Users\root\Desktop\dbServer\node_modules\mysql\lib\Pool.js:48:16)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:23:4)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) {
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
}
[nodemon] app crashed - waiting for file changes before starting...
I can't make a simple connection to the server for some reason. I install the newest MySQL Community 8.0 database along with Node.JS with default settings. This is my node.js code var mysql = r...
Bunu ilk başlarda denedim zaten, şimdi yine denedim, fakat yine aynı. Sorunun bunda olduğunu sanmıyorum, çünkü .env kullanmadan bağlanıyor, fakat .env ile bağlanmıyor ve .env değişkeni console.log da undefined olarak çıkıyor.
Bunu ilk başlarda denedim zaten, şimdi yine denedim, fakat yine aynı. Sorunun bunda olduğunu sanmıyorum, çünkü .env kullanmadan bağlanıyor, fakat .env ile bağlanmıyor ve .env değişkeni console.log da undefined olarak çıkıyor.
Bu arada bir şey fark ettim, path verince hata mesajı şu şekilde değişiyor. Ve bir şey değiştirir mi bilmiyorum, ama .env içine yazılanlara tema geldi, önce sadece gri renk idi, şimdi normal kodlarda ki gibi renkli oldu.
Kod:
node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3306
at Server.setupListenHandle [as _listen2] (node:net:1372:16)
at listenInCluster (node:net:1420:12)
at Server.listen (node:net:1508:7)
at Function.listen (C:\Users\root\Desktop\dbServer\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:32:5)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1399:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 3306
}
Bu arada bir şey fark ettim, path verince hata mesajı şu şekilde değişiyor. Ve bir şey değiştirir mi bilmiyorum, ama .env içine yazılanlara tema geldi, önce sadece gri renk idi, şimdi normal kodlarda ki gibi renkli oldu.
Kod:
node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3306
at Server.setupListenHandle [as _listen2] (node:net:1372:16)
at listenInCluster (node:net:1420:12)
at Server.listen (node:net:1508:7)
at Function.listen (C:\Users\root\Desktop\dbServer\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:32:5)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1399:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 3306
}
MySQL'e zaten bağlanabildim hocam, fakat env kullanmadan. Asıl sorun sanırsam .env kullanmaya çalışırken .env de oluşturulan değişkenlerin undefined çıkması. Fakat bir türlü çözümünü bulamadım.
@oynozan, @zeNnG, @RaSGooL, @kaan.w şimdi denerken fark ettim, path'i verince .env dosyası okunuyor console.log'da falan, fakat şimdi de bu hatayı veriyor.
Kod:
node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3306
at Server.setupListenHandle [as _listen2] (node:net:1372:16)
at listenInCluster (node:net:1420:12)
at Server.listen (node:net:1508:7)
at Function.listen (C:\Users\root\Desktop\dbServer\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:32:5)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1399:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 3306
}
[nodemon] app crashed - waiting for file changes before starting...
MySQL'e zaten bağlanabildim hocam, fakat env kullanmadan. Asıl sorun sanırsam .env kullanmaya çalışırken .env de oluşturulan değişkenlerin undefined çıkması. Fakat bir türlü çözümünü bulamadım.
@oynozan, @zeNnG, @RaSGooL, @kaan.w şimdi denerken fark ettim, path'i verince .env dosyası okunuyor console.log'da falan, fakat şimdi de bu hatayı veriyor.
Kod:
node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3306
at Server.setupListenHandle [as _listen2] (node:net:1372:16)
at listenInCluster (node:net:1420:12)
at Server.listen (node:net:1508:7)
at Function.listen (C:\Users\root\Desktop\dbServer\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:32:5)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1399:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 3306
}
[nodemon] app crashed - waiting for file changes before starting...
@zeNnG hocamın dediği gibi PORT zaten kullanımda şuan. Linux sunucunuz varsa kill $(lsof -t -i:3306) komutu 3306 Portunda çalışan tüm process'leri devre dışı bırakacaktır.
MySQL'e zaten bağlanabildim hocam, fakat env kullanmadan. Asıl sorun sanırsam .env kullanmaya çalışırken .env de oluşturulan değişkenlerin undefined çıkması. Fakat bir türlü çözümünü bulamadım.
@oynozan, @zeNnG, @RaSGooL, @kaan.w şimdi denerken fark ettim, path'i verince .env dosyası okunuyor console.log'da falan, fakat şimdi de bu hatayı veriyor.
Kod:
node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3306
at Server.setupListenHandle [as _listen2] (node:net:1372:16)
at listenInCluster (node:net:1420:12)
at Server.listen (node:net:1508:7)
at Function.listen (C:\Users\root\Desktop\dbServer\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (C:\Users\root\Desktop\dbServer\dbServer.js:32:5)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1399:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 3306
}
[nodemon] app crashed - waiting for file changes before starting...
Linux sunucum yok ve Windows kullanıyorum, hala araştırıyorum aktif olarak ama bulamadım henüz, "npx kill-port 3306" diye bir şey buldum ve denedim fakat işe yaramadı, sizce başka neden kaynaklanıyor olabilir? Yani portu nasıl kapatabilirim veya kullanan şeyi bulabilir miyim?
@oynozan, @zeNnG, @RaSGooL, @kaan.w evet şu anda sorunu çözmüş bulunmaktayım ve sorunun nedenini hala anlayamadım, ilk olarak 3000 portunu silip denedim ve olmadı gibi bir şey oldu, daha sonra bir şeyler denedim ve oldu, ardından eski haline getirdim kodu ve tekrar çalıştı, PC'ye reset falanda atmadım, aklıma @RaSGooL'un dediği gibi VSCode'un kafayı yemesi geliyor en yüksek ihtimallerden şu an.
Çalışan kod.
Port'a this vermemin sebebi neden bilmiyorum, birden port undefined demeye başladı ve bunu verince çözüldü.
Hepinize ilginizden dolayı teşekkür ederim.
Düzenleme: port kısmında "const port = process.env.PORT" değişkenini yanlışlıkla kaldırmışım ve diğer "DB_PORT" ile karıştırmışım.
Bu yüzden objenin içindeki "DB_PORT" değişkenini göremediği için this. istemiş.