2012-08-12 12 views
29

निम्नलिखित कोड:java.sql.SQLException: पहुँच उपयोगकर्ता 'जड़' @ 'स्थानीय होस्ट' के लिए इनकार किया (पासवर्ड का उपयोग: हाँ)

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) 
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at db.Database.<init>(Database.java:91) 
    at db.Main.main(Main.java:10) 

:

Class.forName("com.mysql.jdbc.Driver"); 
Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost","root","root"); 

getConnection() पर इस अपवाद फेंकता यह कैसे होता है और मैं इसे कैसे हल कर सकता हूं?

संपादित करें:

public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException 
    { 

     try 
     { 
      Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); 
      Statement s = (Statement) conn.createStatement(); 
      int result = s.executeUpdate("CREATE DATABASE databasename"); 
     } 


     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
} 

का उत्पादन:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) 
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at db.Main.main(Main.java:19) 
+1

क्या आप myqql GUI क्लाइंट जैसे SqlYog या PhpMyAdmin का उपयोग कर कनेक्ट करने में सक्षम हैं? – Tomer

+1

@ ftom2: हां, मैं सफलतापूर्वक 'phpmyadmin' तक पहुंच सकता हूं। – ron

+1

क्या आप सुनिश्चित हैं कि ** उपयोगकर्ता नाम ** और ** पासवर्ड ** प्रदान किया गया है तो सही है? मेरे लिए Seesm ** रूट ** के रूप में ऐसा कोई उपयोगकर्ता नहीं है :(हालांकि सुनिश्चित नहीं है, लेकिन आपको ** कनेक्शन नाम ** प्रदान करना नहीं है जैसे 'कनेक्शन con = DriverManager.getConnection ("jdbc: mysql: // localhost; डेटाबेस = mywebsitedb; उपयोगकर्ता = sa; पासवर्ड = thatstrue; ");' –

उत्तर

8

आप स्क्रैच से एक डेटाबेस बना रहे हैं, तो आप इस्तेमाल कर सकते हैं:

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); 
PreparedStatement ps = connection.prepareStatement("CREATE DATABASE databasename"); 
int result = ps.executeUpdate(); 

यहाँ एक identical scenario है।

+0

यदि मेरे पास कोई डेटाबेस नहीं है? और मैं जावा कोड का उपयोग कर डेटाबेस बनाना चाहता हूं, और मैन्युअल रूप से 'phpmyadmin' में नहीं, तो' डेटाबेस नाम 'प्रासंगिक नहीं है? – ron

+0

ठीक है, क्षमा करें, नए वाक्यविन्यास – Reimeus

+0

के साथ अद्यतन किया गया है कृपया संपादित पोस्ट देखें। – ron

1

इस तरह यह प्रयास करें ....

public static Connection getConnection() throws SQLException{ 

    String driver = "com.mysql.jdbc.Driver"; 
    String url = "jdbc:mysql://localhost:3306/test"; 
    String username = "root"; 
    String password = "vicky";   // Change it to your Password 
    System.setProperty(driver,""); 

    return DriverManager.getConnection(url,username,password); 
} 
+3

यह कंक्रीट समस्या को ठीक से क्यों हल करेगा? आप किसी भी तरह से कारण बता नहीं रहे हैं। – BalusC

2

आप db आप कनेक्ट कर रहे निर्दिष्ट करना चाहिए:

jdbc:mysql://localhost:3306/mydb 
38

यह आपकी मदद कर सकते हैं:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION; 

कमांड लाइन या कुछ जीयूआई उपकरण के साथ यह निष्पादित।

वास्तविक पासवर्ड के साथ %password% को प्रतिस्थापित करने के लिए मत भूलना।

+4

भ्रम से बचने के लिए आपको शायद "रूट द्वारा पहचान" को "पासवर्ड से पहचानने" में बदलना चाहिए। – Pranjal

+0

@Pranjal आप सही हैं। धन्यवाद। मैंने जवाब संपादित कर लिया है। – evg

+1

@evg मैंने सफलतापूर्वक इस क्वेरी को निष्पादित कर लिया है लेकिन अभी भी इस त्रुटि से छुटकारा नहीं पा रहा है –

1

मैं एक ही मुद्दा मार रहा था। MySQL सेवा पोर्ट नंबर (3307) जोड़ा गया, इस मुद्दे को हल किया।

conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/?" + "user=root&password=password"); 
3

मैं एक ऐसी ही समस्या थी, लेकिन differemce था: मैं localhost से मेरी JavaApp निष्पादित नहीं था, लेकिन एक दूरस्थ पीसी से। इसलिए मैं java.sql.SQLException: Access denied for user 'root'@'a.remote.ip.adress' (using password: YES) की तरह कुछ इस को हल करने के लिए, आप बस, phpMyAdmin के लिए लॉग इन कर सकते हैं Users पर जाते हैं, add user क्लिक करें और मेजबान, जिनसे आप अपने JavaApp पर अमल करना चाहते हैं (या Any Host चुनें)

3

आप इस

उपयोग कर सकते हैं मिल गया
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost:3306/YOUR_DB_NAME"; 


    static final String USER = "root"; 
    static final String PASS = "YOUR_ROOT_PASSWORD"; 

    Connection conn = DriverManager.getConnection(DB_URL,USER,PASS); 

आपको सही रूट पासवर्ड देना होगा।

1

हालांकि यह आपके मुद्दे का कारण नहीं हो सकता है, यदि आपको एक ही पोर्ट पर दो MySQL सेवाएं चल रही हैं तो आपको वही त्रुटि मिल जाएगी। आप कार्य प्रबंधक के सेवा टैब में सेवाओं की सूची देखकर विंडोज़ पर जांच सकते हैं।

+0

यह एक टिप्पणी है, उत्तर नहीं। –

0

मेरे पास एक ही समस्या थी "java.sql.SQLException: उपयोगकर्ता 'रूट' @ 'localhost' (पासवर्ड का उपयोग करके: YES) के लिए पहुंच से इनकार किया गया"। समस्या "गलत पासवर्ड" थी। क्वेरी को कॉपी और पेस्ट करें-यह-शेल में है यह जांचने के लिए कि क्या यह वांछित आउटपुट देता है या नहीं। छोटी त्रुटियां अधिक समय लेती हैं।

1

यह अपवाद भी mysql डीबी और आपके pom.xml/jar के संस्करण विसंगति के कारण होता है।

सुनिश्चित करें कि आपका pom.xml/jar संस्करण आपके mysql db संस्करण से अधिक है। क्योंकि उच्च संस्करण निम्न संस्करण के साथ संगत हैं, लेकिन यह विपरीत के लिए भी सही नहीं है।

समाधान के जावा परियोजना

  • के लिए उपयुक्त संस्करण के साथ जार बदलें। आधारित

    • बदलें निर्भरता संस्करण pom.xml में

    वसंत बूट के लिए समाधान Maven के लिए

समाधान - 5.1.5.Final जोड़कर वसंत बूट निर्भरता ओवरराइड

0

मुझे अपना एसक्यूएल सेटअप बदलना पड़ा (मेरे मेजबान में, मेरे मामले में ड्रीमहोस्ट) सभी को यूजरनेम को अन्य होस्टों से डेटाबेस तक पहुंचने के लिए, सिर्फ ड्रीमहोस्ट नहीं, क्योंकि मैं अपने कंप्यूटर पर आईडीई से प्रोग्राम चला रहा हूं। मैंने स्वीकार्य होस्ट की सूची में% जोड़कर ऐसा किया था। यह अब काम करता है!

+0

मुझे यह जोड़ना चाहिए कि यह # मंचकिन्स दृष्टिकोण के समान है लेकिन SQL नियंत्रण पैनल के अंत से है। –

0

मुझे इस त्रुटि का सामना करना पड़ा। समस्या यह थी कि मेरे पास गलत डेटाबेस नाम था।

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1828433 9) – Mamun

संबंधित मुद्दे

 संबंधित मुद्दे