2016-03-29 7 views
1

Ich habe eine Nodejs App, die ich erfolgreich bereitstellen konnte, aber nicht startet. Ich bekomme diese Fehler die ganze Zeit, wenn ich auf die Log-Dateien suchen:NodeJS + Express + MySQL App läuft nicht auf Openshift

Warning: connect.session() MemoryStore is not 
designed for a production environment, as it will leak 
memory, and will not scale past a single process. 
Tue Mar 29 2016 05:48:11 GMT-0400 (EDT): Node server started on 127.8.221.129:8080 ... 
Server on port : 8080 
Tue Mar 29 2016 05:48:11 GMT-0400 (EDT): Node server stopped. 
/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/models/user.js:14 
    throw err; 
    ^
Error: getaddrinfo ENOTFOUND mysql://127.8.221.130:3306/ mysql://127.8.221.130:3306/:3306 
    at errnoException (dns.js:26:10) 
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26) 
    -------------------- 
    at Protocol._enqueue (/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
    at Protocol.handshake (/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
    at Connection.connect (/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/node_modules/mysql/lib/Connection.js:123:18) 
    at Object.<anonymous> (/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/models/user.js:12:13) 
    at Module._compile (module.js:413:34) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 
    at Module.require (module.js:367:17) 
    at require (internal/module.js:16:19) 
    at Object.<anonymous> (/var/lib/openshift/56f90f110c1e663f390001df/app-root/runtime/repo/routes/users.js:3:13) 
    at Module._compile (module.js:413:34) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 
    at Module.require (module.js:367:17) 

Dies ist MySQL Verbindungscode (Passwort verborgen ist, aber ich benutze das eine vom MySQL-Kassette zur Verfügung gestellt, sowie die Benutzer):

var connection = mysql.createConnection({ 
host  : 'mysql://' + process.env.OPENSHIFT_MYSQL_DB_HOST + ':' + process.env.OPENSHIFT_MYSQL_DB_PORT + '/', 
user  : 'adminbL38x6k', 
password : '********', 
database : 'addressbook' 
}); 

connection.connect(function(err){ 
if (err){ 
    throw err; 
} 
else { 
    console.log('Connected'); 
} 
}); 

Ich benutze auch PHPmyAdmin, um Tabellen zu erstellen/Datenbank zu verwalten. Irgendwelche Ideen? Ich bin ziemlich verzweifelt ... Danke!

+0

können Sie 'ping 127.8.221.130'? – alexey

+0

@alexey Ich habe dies nach Ping, so dass ich denke, es ist in Ordnung: 127.8.221.135 mit 32 Bytes Daten anzusprechen: Antwort von 127.8.221.135: Bytes = 32 Zeit <1ms TTL = 128 Antwort von 127.8.221.135: Bytes = 32 Zeit <1ms TTL = 128 Antwort von 127.8.221.135: Bytes = 32 Zeit <1ms TTL = 128 Antwort von 127.8.221.135: Bytes = 32 Zeit <1ms TTL = 128 Ping-Statistik für 127.8.221.135: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ungefähre Umlaufzeiten in Millisekunden: Minimum = 0 ms, Maximum = 0 ms, Durchschnitt = 0 ms – ArtanisAce

Antwort

2

Der Verbindungsfehler zeigt zwei Verbindungszeichenfolgen (ENOTFOUND mysql://127.8.221.130:3306/ mysql://127.8.221.130:3306/:3306) und nach dem mysqldocumentation des node.js Fahrer, sollte der Host und Port separat oder in einer einzigen Verbindungszeichenfolge zur Verfügung gestellt werden, empfehle ich eher:

var connection = mysql.createConnection({ 
host  : process.env.OPENSHIFT_MYSQL_DB_HOST, 
port  : process.env.OPENSHIFT_MYSQL_DB_PORT, 
user  : 'adminbL38x6k', 
password : '********', 
database : 'addressbook' 
}); 

... oder die Verbindungszeichenfolge so:

var connection = mysql.createConnection(process.env.OPENSHIFT_MYSQL_DB_URL + 'addressbook'); 
+0

danke ver Du viel Mann! Es klappt!! Du kannst nicht glauben, wie viele Kopfschmerzen mir das gab ... – ArtanisAce

+0

Die beste Antwort aus all den ähnlichen Fragen! Ich wünschte, ich könnte dich genug aufrütteln, damit du die oberen 0,01% von SO erreichst! –

Verwandte Themen