我正在尝试连接到本地MySQL服务器,但我一直收到错误.
这是代码.
public class Connect {
public static void main(String[] args) {
Connection conn = null;
try {
String userName = "myUsername";
String password = "myPassword";
String url = "jdbc:mysql://localhost:3306/myDatabaseName";
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);
System.out.println("Database connection established");
} catch (Exception e) {
System.err.println("Cannot connect to database server");
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Database Connection Terminated");
} catch (Exception e) {}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
和错误:
Cannot connect to database server …
Run Code Online (Sandbox Code Playgroud) 如果我的Spring Boot应用程序在几个小时内处于非活动状态(例如在夜间),我会收到此错误:
2015-05-19 09:16:32.666 WARN 20582 --- [http-nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 08S01
2015-05-19 09:16:32.668 ERROR 20582 --- [http-nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : Communications link failure
The last packet successfully received from the server was 29.792.613 milliseconds ago. The last packet sent successfully to the server was 6 milliseconds ago.
Run Code Online (Sandbox Code Playgroud)
试图解决这个问题我读到MySQL有一个名为wait_timeout
setted 的参数,默认为8小时(28800秒),在此之后我的所有非活动连接都关闭了,所以我的Spring Boot应用程序停止工作......
我的问题是:
编辑
这里还有其他类似/有用的问题:
我有一个带有本地数据库的应用程序,即H2。但客户使用的是MySQL。客户端存在一些问题,因此我决定在本地计算机(MacOS)上安装并运行针对 MySQL 的应用程序。我使用的是java 9。
单击“测试连接”后,出现以下错误。
有很多评论:
但大多数不是在测试连接,而是在配置。此外,这些人的连接至少可以工作一次或通过另一组防火墙。以前的解决方案都不适合我的情况。
我还尝试使用以下命令重新启动 MySQL:
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
结果:
service: command not found
Run Code Online (Sandbox Code Playgroud)
或者只是检查状态:
sudo service mysql status
Run Code Online (Sandbox Code Playgroud)
结果:
service: command not found
Run Code Online (Sandbox Code Playgroud)
不知道和我的问题有没有关系?数据库是“永远”运行还是idea仅在我运行应用程序时才运行它?有人可以帮助连接到数据库吗?