我已经在我的计算机上安装了 lampp 和 Tomcat,因为我需要它们来完成项目。我使用 Symfony 来创建应用程序的一部分。我创建了另一个应用程序,但这次使用 Tomcat。这两个应用程序使用相同的数据库,但运行 Tomcat 的应用程序无法连接。
当我从计算机上运行这两个项目时,一切正常;然而,当我在我的服务器上运行它们时,只有 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;
**class1 : Bean_BaseDeDonnee.java ** i 我在此类中初始化连接
结束类(class)1
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/>");
}
最佳答案
看起来您的数据库指向localhost 127.0.0.1
。在服务器配置中,您应该确保它指向运行数据库服务器的计算机的地址 - 除非应用程序和数据库在同一台计算机上运行。
关于java.sql.SQLException : Access denied for user 'root' @'localhost' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558094/