3

我的 Java 应用程序需要连接到磁盘上的 Mysql 数据库文件。

为此,它需要启动一个 Mysql 服务器并使用该服务器读取文件。问题是我不确定如何从我的 Java 代码中启动服务器,读取 Mysql 文件,对其进行修改,然后停止服务器。

目前,我正在使用类似下面的东西,但我看不到从代码启动服务器的方法。

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setServerName("MysqlServer");
Connection conn = dataSource.getConnection();

使用这个,我遇到

线程“主”java.lang.RuntimeException 中的异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

我认为这是因为服务器没有启动。如何从代码启动服务器?

4

5 回答 5

4
  • 选项 1:了解如何从命令行启动 mysql。然后使用ProcessBuilder来做到这一点
  • 选项 2:使用 mysql 的可嵌入版本,如果适合您:查看详细信息
于 2013-04-24T02:01:51.000 回答
3

您需要运行“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();
}
于 2013-06-20T03:29:15.567 回答
1

查看 Runtime.exec(),它将允许您通过控制台启动 mySQL。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Runtime.html

于 2013-04-24T01:51:04.007 回答
0
Runtime runTime = Runtime.getRuntime();
Process p = runTime.exec(String[] cmdarray, String[] envp, File dir);
p.waitFor();
于 2014-10-27T03:11:09.887 回答
-3

最简单的方法是使用JDBC,然后您需要做的就是向服务器发送查询并解释结果。下面是一个简单的连接方法。

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();
    }
于 2013-04-24T02:46:39.627 回答