Java 如何解决用户''@';本地主机';到数据库';测试qa';?

Java 如何解决用户''@';本地主机';到数据库';测试qa';?,java,jdbc,google-cloud-sql,Java,Jdbc,Google Cloud Sql,当我试图创建我得到的连接对象时,我正在处理jdbc和cloudsql 用户'@'localhost'对数据库''test-qa'的访问被拒绝。此异常。请检查下面的代码 import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta

当我试图创建我得到的连接对象时,我正在处理jdbc和cloudsql

用户'@'localhost'对数据库''test-qa'的访问被拒绝。此异常。请检查下面的代码

        import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.logging.Logger;

    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.cloudcodes.ErrorHandler;
    import com.google.appengine.api.utils.SystemProperty;


    public class GuestbookServlet extends HttpServlet {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        final  Logger logger=Logger.getLogger(this.getClass().getName());
      @Override
      public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String url = null;
        try {
            System.out.println(SystemProperty.environment.value()+".."+ SystemProperty.Environment.Value.Production);
            logger.warning(SystemProperty.environment.value()+".."+ SystemProperty.Environment.Value.Production);
            if (SystemProperty.environment.value() ==
                    SystemProperty.Environment.Value.Production) {
                  // Load the class that provides the new "jdbc:google:mysql://" prefix.
                  Class.forName("com.mysql.jdbc.GoogleDriver");
                  logger.warning("class loaded sucessfullyl....");
                  url = "jdbc:google:mysql://myinstanceName/mydatabasename(test-qa)";
                } else {
                  // Local MySQL instance to use during development.
                  /*Class.forName("com.mysql.jdbc.Driver");
                  logger.warning("2nd class loaded sucessfullyl....");
                  url = "jdbc:mysql://localhost/guestbook";*/
                }



        } catch (Exception e) {
             ErrorHandler.errorHandler(this.getClass().getSimpleName(),e);
            e.printStackTrace();
             System.out.println(e.getLocalizedMessage());
          return;
        }

        PrintWriter out = resp.getWriter();
        try {
            logger.warning("the url is..."+url);
          Connection conn = DriverManager.getConnection(url);
          try {


              String statement = "INSERT INTO Emp (empNo, empName) VALUES( ? , ? )";
              PreparedStatement stmt = conn.prepareStatement(statement);
              stmt.setString(1, "1");
              stmt.setString(2, "bhanuprasad");
              int success = 2;
              success = stmt.executeUpdate();
              if (success == 1) {
                out.println(
                    "<html><head></head><body>Success! Redirecting in 3 seconds...</body></html>");
              } else if (success == 0) {
                out.println(
                    "<html><head></head><body>Failure! Please try again! " +
                    "Redirecting in 3 seconds...</body></html>");

            }
          } finally {
            conn.close();

          }
        } catch (SQLException e) {
          e.printStackTrace();
          ErrorHandler.errorHandler(this.getClass().getSimpleName(),e);
        }
        resp.setHeader("Refresh", "3; url=/guestbook.jsp");
      }
    }
import java.io.IOException;
导入java.io.PrintWriter;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.PreparedStatement;
导入java.sql.SQLException;
导入java.util.logging.Logger;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入com.cloudcodes.ErrorHandler;
导入com.google.appengine.api.utils.SystemProperty;
公共类GuestbookServlet扩展了HttpServlet{
/**
* 
*/
私有静态最终长serialVersionUID=1L;
最终记录器=Logger.getLogger(this.getClass().getName());
@凌驾
public void doGet(HttpServletRequest-req、HttpServletResponse-resp)引发IOException{
字符串url=null;
试一试{
System.out.println(SystemProperty.environment.value()+“.”+SystemProperty.environment.value.Production);
logger.warning(SystemProperty.environment.value()+“.”+SystemProperty.environment.value.Production);
if(SystemProperty.environment.value()==
SystemProperty.Environment.Value.Production){
//加载提供新的“jdbc:google:mysql://”前缀的类。
Class.forName(“com.mysql.jdbc.GoogleDriver”);
logger.警告(“类加载成功…”);
url=“jdbc:google:mysql://myinstanceName/mydatabasename(测试)";;
}否则{
//在开发过程中使用的本地MySQL实例。
/*Class.forName(“com.mysql.jdbc.Driver”);
记录器。警告(“二级加载成功…”;
url=“jdbc:mysql://localhost/guestbook";*/
}
}捕获(例外e){
ErrorHandler.ErrorHandler(this.getClass().getSimpleName(),e);
e、 printStackTrace();
System.out.println(e.getLocalizedMessage());
回来
}
PrintWriter out=resp.getWriter();
试一试{
logger.warning(“url为…”+url);
连接conn=DriverManager.getConnection(url);
试一试{
String语句=“插入Emp(empNo,empName)值(?,)”;
PreparedStatement stmt=conn.PreparedStatement(报表);
stmt.setString(1,“1”);
stmt.setString(2,“bhanuprasad”);
int成功=2;
success=stmt.executeUpdate();
如果(成功==1){
out.println(
“成功!在3秒钟内重定向…”;
}else if(成功==0){
out.println(
“失败!请再试一次!”+
“在3秒钟内重定向…”);
}
}最后{
康涅狄格州关闭();
}
}捕获(SQLE异常){
e、 printStackTrace();
ErrorHandler.ErrorHandler(this.getClass().getSimpleName(),e);
}
resp.setHeader(“刷新”,“3;url=/guestbook.jsp”);
}
}

与我使用的spring和Hibernet应用程序的实例名和数据库名相同,它工作正常,但我得到了:用户'@'localhost'对数据库的访问被拒绝,当我从adminapiconsole检查此数据库时,我找到了这些表..我如何解决此问题?任何人都可以帮助我

您应该联系管理员授予您访问权限。您是否可以使用任何客户端软件(命令行、MySql工作台、HeidiSql等)登录?连接时应指定用户名和密码。。。