2014-07-03 173 views
0

我在計算機上安裝了lampp和Tomcat,因爲我需要它們作爲項目。我用Symfony創建應用程序的一部分。我創建了另一個應用程序,但這次使用Tomcat。這兩個應用程序使用相同的數據庫,但運行Tomcat的應用程序無法連接。java.sql.SQLException:拒絕用戶'root'@'localhost'的訪問

當我從我的電腦上運行這兩個項目時,一切正常;但是當我在服務器上運行它們時,只有Symfony應用程序才能訪問數據庫。

我通過Tomcat的

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO) 

運行有誰知道問題是什麼在這裏,當出現以下情況例外?

symfony的數據庫連接

database_driver: pdo_mysql 
database_host: 127.0.0.1 
database_port: null 
database_name: blablablabla 
database_user: root 
database_password: null 
mailer_transport: smtp 
mailer_host: 127.0.0.1 
mailer_user: null 
mailer_password: null 
locale: en 
secret: ThisTokenIsNotSoSecretChangeIt 

Tomcat項目連接

package com.beans; 
public class Bean_BaseDeDonnee: 


private String nom =jdbc:mysql://127.0.0.1:3306/blablablabla; 

** 1類:Bean_BaseDeDonnee.java **我我初始化這個類中的連接

結束class1的

類class2我做的一切必要這裏的進口

 try 
        { 

         Class.forName("com.mysql.jdbc.Driver"); 
         request.setAttribute("texte", "le driver a été trouvé dans le classpath ! <br/>"); 
        } 

         catch (ClassNotFoundException e) 
        { 
        request.setAttribute("texte", "Erreur lors du chargement : le driver n'a pas été trouvé dans le classpath ! <br/>"); 
        } 


          Bean_BaseDeDonnee bd = new Bean_BaseDeDonnee(); 


          /* Connexion à la base de données */ 
          String url = bd.getNombd(); 
          String utilisateur = "root"; 
          String motDePasse = ""; 
          Connection connexion = null; 
          Statement statement = null; 
          ResultSet resultat = null; 
          request.setAttribute("texte", url); 


         try 
         { 
         connexion = DriverManager.getConnection(url, utilisateur, motDePasse); 

         /* Création de l'objet gérant les requêtes */ 
         statement = connexion.createStatement(); 
         } 
         catch ( SQLException e) 
         { 
         request.setAttribute("texte", " n'a pas été trouvé dans le classpath ! <br/>"); 
         } 
+0

Tomcat只是送貨員。數據庫正在向您發送該異常。它告訴你:沒有密碼,你不能以root身份登錄。實際上,您可能並未從本地主機連接,因此您需要授予數據庫內的訪問權限以便連接到本地主機之外。 – Gimby

+0

如果我不允許以root用戶的身份登錄,爲什麼symfony的連接不會失敗??? – user3786032

+0

你是否在本地安裝了mysql服務器,並設置爲允許通過TCP進行遠程連接? –

回答

0

看起來像你的數據庫是指向localhost 127.0.0.1。在服務器配置中,應確保這指向運行數據庫服務器的機器的地址 - 除非應用程序和數據庫在同一臺機器上運行。

相關問題