我正在尝试使用java httpServlet和netbeans创建我的第一个API,它将基于其examples和documentations连接到谷歌云上的数据库。我没有创建数据库,但我获得了必要的凭据和vars来创建连接。所以我从github下载了这个项目,当我尝试从netbeans打开它时,有一些关于依赖的问题......所以我解决了它们,我用他们的值替换了凭证并运行了项目;不幸的是抛出了一个错误:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
我做了一些搜索,但没有得到任何结果......这个代码可能是错误吗?数据库安全性的错误,如果它在云上不可见?任何帮助都非常感谢。
public class ListTables {
public static void main(String[] args) throws IOException, SQLException {
String instanceConnectionName = "<foo:foo:bar>";
String databaseName = "myDatabaseName ";
String username = "myUsername ";
String password = "<myPass>";
if (instanceConnectionName.equals("<insert_connection_name>")) {
System.err.println("Please update the sample to specify the instance connection name.");
System.exit(1);
}
if (password.equals("<insert_password>")) {
System.err.println("Please update the sample to specify the mysql password.");
System.exit(1);
}
String jdbcUrl = String.format(
"jdbc:mysql://google/%s?cloudSqlInstance=%s&"
+ "socketFactory=com.google.cloud.sql.mysql.SocketFactory",
databaseName,
instanceConnectionName);
try{
Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
/* try (Statement statement = connection.createStatement()) {
ResultSet resultSet = statement.executeQuery("select * from wf_accounts;");
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
}*/
}catch(Exception ex){
System.out.println("Error: " + ex.toString());
}
更新
当我这样做时抛出了同样的错误:
String jdbcUrl = String.format(
"jdbc:mysql://google/%s?cloudSqlInstance=%s&"
+ "socketFactory=com.google.cloud.sql.mysql.SocketFactory",
"",
"");
任何提示?
答案 0 :(得分:0)
首先你必须检查mysql服务器是否正在运行。如果你是Windows用户,你可以简单地
Go to Task Manager
Go to Services
then search for your Mysql server(eg:for my case its MYSQL56)
then you will see under the status column it says its not running
by right clicking and select start
如果它已经运行,那么你必须像在mysql文档中一样,
您应该考虑在应用程序中使用之前使连接有效期到期和/或测试,增加服务器配置的客户端超时值,或者使用Connector / J连接属性
autoReconnect的= TRUE
避免这个问题