2012-11-18 12 views
5

का उपयोग कर mysql डेटाबेस तक पहुंचने में सहायता की आवश्यकता है। मैं एक mysql डीबी तक पहुंचने के लिए एक साधारण नोड नमूना चलाने की कोशिश कर रहा हूं और मुझे निम्न त्रुटि मिल रही है- त्रुटि: ER_ACCESS_DENIED_ERROR: उपयोगकर्ता'root'@'ubuntu.local के लिए पहुंच अस्वीकृत '(पासवर्ड का उपयोग: हाँ)node.js

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : '192.168.0.12', 
    user  : 'root', 
    password : 'password', 
    database : 'app' 
}); 

connection.connect(); 

connection.query('SELECT * from users', function(err, rows, fields) { 
    if (err) throw err; 

    console.log('The solution is: ', rows[0]); 
}); 

connection.end(); 

ऊपर अग्रिम में, मैं गलत क्या कर किया जा सकता है के रूप में mysql node.js.Any सुझावों का उपयोग करके तक पहुँचने के लिए धन्यवाद के लिए कोड है।

+1

क्या आप कंसोल से mysql से कनेक्ट कर सकते हैं? 'mysql -h 192.168.0.12 -u root -p app' (अनुरोध के बाद पासवर्ड दर्ज करें) –

+0

शायद आपको 'लोकलहोस्ट' –

+0

पर मेजबान सेट करने की आवश्यकता है, मैं नहीं कर सकता, आपके द्वारा दिए गए आदेश को निष्पादित करें, लेकिन यदि मैं आईपी एड्रर को प्रतिस्थापित करता हूं स्थानीयहोस्ट के साथ यह कमांड लाइन से काम करता है लेकिन नोड स्क्रिप्ट में मुझे निम्नलिखित त्रुटि मिलती है- ECONNREFUSED कनेक्ट करें। – anonymous123

उत्तर

8

मुझे एक ही समस्या थी जहां मुझे एक ही त्रुटि मिल रही थी।

मेरे लिए उत्तर यह हुआ कि मैं एक अलग बंदरगाह का उपयोग कर रहा था। डिफ़ॉल्ट रूप से, mysql 3306 के एक बंदरगाह की उम्मीद है, लेकिन मैं MAMP, जहां MySQL सर्वर पोर्ट 8889. के रूप में निर्दिष्ट किया गया था जैसे ही मैं अपने डेटाबेस कनेक्शन के लिए एक बंदरगाह परिभाषा जोड़ा उपयोग कर रहा था, यह ठीक था:

var connection = mysql.createConnection({ 
    port: 8889, 
    user: 'root', 
    password : 'password', 
    database : 'my_database' 
}); 

नोट: यह मैक के लिए मैक के लिए है, इसे उबंटू या विंडोज पर आजमाया नहीं है।

3

मुझे एक ही समस्या मिल रही थी। मैं nodejs में mysql मॉड्यूल के माध्यम से कनेक्ट करने में सक्षम नहीं था, लेकिन टर्मिनल में mysql क्लाइंट के माध्यम से कनेक्ट करने में सक्षम था (mysql -u root -p1111 -h localhost mydb)

यह पता चला है कि mysql मॉड्यूल " लोकहोस्ट "से 127.0.0.1। यह (mysql -u root -p1111 -h 127.0.0.1 mydb) के माध्यम से काम नहीं करेगा। Issue 734

इसलिए मुझे MySQL में 127.0.0.1 के लिए पासवर्ड सेट करना पड़ा और यह समस्या हल हो गई।

निर्देश

कनेक्ट mysql के लिए सांत्वना के माध्यम से:

mysql -u root -p mysql 

और चलाने

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('Add-Your_password-here'); 

Source

+0

जब 'mysql -u root -p mysql' चलाएं, यह त्रुटि प्राप्त करें 'उपयोगकर्ता' रूट '@' लोकलहोस्ट '(पासवर्ड का उपयोग करके: YES)' – jose920405

-1

असल समाधान तुलना में आसान आपको लगता है। डेटाबेस कनेक्शन के लिए होस्ट को 127.0.0.1 में बदलें।

+5

के लिए प्रवेश अस्वीकृत 'क्या आप कृपया बदलते हुए थोड़ा और विवरण प्रदान करने में सक्षम होंगे "127.0.01" होस्ट करने के लिए डेटाबेस कनेक्शन को हल करता है? चूंकि ओपी एक आईपी पता का उपयोग कर रहा है जो डेटाबेस सर्वर से संबंधित प्रतीत होता है। –

1

मैं अब इस समस्या पर लंबे समय से रहा हूं और मेरे द्वारा किए गए सभी मंचों में, एक साधारण समाधान मेरी समस्या का समाधान करता है। मेरा पासवर्ड कुछ विशेष चरित्र के साथ था। मैं इसे "केवललेटर्स" की तरह एक सरल में बदलता हूं और यह पूरी तरह से काम करता है। शायद nodejs mysql मॉड्यूल में एक एन्कोडिंग समस्या, मैं कर सकता हूं ... उम्मीद है कि यह आपके कुछ लोगों की मदद करेगा ...

+0

मेरे साथ यह पासवर्ड था: [ए-ज़ा-जे 0-9 \।] {64} मेरे लिए काम किया, – Myonara

0

मुझे एक ही समस्या थी, मेरे नोडजेस प्रोजेक्ट। मैं querybuilder के लिए knex.js का उपयोग कर रहा था और यह है विन्यास।

यह समस्या तब होती है जब होस्ट मान 127.0.0.1, जब मैं स्थानीयहोस्ट में 127.0.0.1 में बदल गया, समस्या दूर हो गई।

var knex = require('knex')({ 
    client: 'mysql', 
    connection: { 
     **host: 'localhost',** 
     user: 'userNew', 
     password: 'password', 
     database: 'appDb' 
    } 
});