Java 如何解决用户''@';本地主机';到数据库';测试qa';?
当我试图创建我得到的连接对象时,我正在处理jdbc和cloudsql 用户'@'localhost'对数据库''test-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
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等)登录?连接时应指定用户名和密码。。。