如何用Java编程启动Mysql服务器?
我的Java应用程序需要连接到磁盘上的Mysql数据库文件 为此,它需要启动一个Mysql服务器并使用该服务器读取文件。问题是,我不知道如何从Java代码中启动服务器,读取Mysql文件,对其进行修改,然后停止服务器 目前,我正在使用下面这样的东西,但我没有看到从代码启动服务器的方法如何用Java编程启动Mysql服务器?,java,mysql,jdbc,Java,Mysql,Jdbc,我的Java应用程序需要连接到磁盘上的Mysql数据库文件 为此,它需要启动一个Mysql服务器并使用该服务器读取文件。问题是,我不知道如何从Java代码中启动服务器,读取Mysql文件,对其进行修改,然后停止服务器 目前,我正在使用下面这样的东西,但我没有看到从代码启动服务器的方法 MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setUser("root"); dataSource.setPassword("roo
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setServerName("MysqlServer");
Connection conn = dataSource.getConnection();
用这个,我遇到了
线程“main”java.lang.RuntimeException中出现异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
我想这是因为服务器没有启动。如何从代码启动服务器?查看Runtime.exec(),它将允许您通过控制台启动mySQL
- 选项1:了解如何从命令行启动mysql。那就用它来做吧
- 选项2:使用可嵌入版本的mysql ,如果你觉得合适的话:看
import java.sql.*;
Connection conn;
private void connect()
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://serverURL","user","pass);
System.out.println("Connection Established");
}
catch (Exception ex)
{
System.err.println("Unable to load the MySQL driver.");
ex.printStackTrace();
}
您需要运行“mysqld.exe”来启动mysql服务器。该文件可以在mysql主文件夹的“bin”文件夹中找到(假设您在windows中工作)。在我的例子中是“mysql-5.6.10-win32\bin\mysqld.exe” 如果你想做同样的事情,可以从Java开始——我使用了下面的代码,它工作了。希望能有帮助 ======================================================
String command = "~path~\\mysql-5.6.10-win32\\bin\\mysqld.exe";
try
{
Process process = Runtime.getRuntime().exec(command);
}
catch (IOException e)
{
e.printStackTrace();
}
1) 我建议使用
ProcessBuilder
而不是Runtime.exec()
2)尝试在回答中链接到更为最新的文档。现在,您正在链接到Java1.5Fair。这只是谷歌最早出现的Java文档链接,在1.7版本中仍然可以使用。如果mysql是手动启动的,你能运行这个应用程序吗?网络错误可能来自防病毒软件/防火墙etc@yan:是的,如果mysql服务器正在运行,应用程序就可以工作。@Sai:我正在使用OSX,但正在寻找一种平台独立的解决方案。如果您希望平台独立,为什么不使用Apache Derby而不是mysql?这要求服务器正在运行。他需要开始。
Runtime runTime = Runtime.getRuntime();
Process p = runTime.exec(String[] cmdarray, String[] envp, File dir);
p.waitFor();