对不起也许这就是我问,因为没有得到任何回答这个问题的第二次。
这是我的代码
try{
File f = new File("Database.sql");
if(f.exists()){
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/"+f.getName(),"","");
}else{
f.createNewFile();
System.out.println("file created");
//also do the connection
}
}catch(Exception ex){
System.out.println(ex.getMessage());
}
这里是错误:
通信链路故障成功发送到服务器的最后一个数据包为0毫秒前。 司机还没有从服务器接收到任何数据包。
这个问题的目的是:我创建是许多用户来说,问题是他们不知道什么电脑,我必须让尽可能简单的应用。
那么,有没有办法跟MYSQL,如MS ACCESS通过目录路径连接?
或者是有其他的建议呢?
谢谢 。
初步定义
“连接到MySQL数据库文件 ”是措辞不当。
一个实际连接到MySQL数据库服务器 ,它允许对数据库的 访问 。 所以必须有一个MySQL服务器连接,更多低于。
你Database.sql
文件是数据库转储文件 ,也就是说,一个愚蠢的(纯文本)文件。 你需要一个专门的工艺从中提取数据,解释你的SQL查询后:数据库服务器。
你可能会假设一个可以连接到一个文件 ,因为你是用来与MS Access文件工作。 我不是无论是在Java和MS Access中的专家,但我undestanding在访问从Java的MS Access“数据库”文件,其实就是连接到一些中间件服务器 ,如微软这个ODBC啄 。
答案
有没有办法通过一个目录路径连接到MySQL数据库服务器 。 唯一的原生方式是 :
- TCP
- 本地套接字(仅UNIX服务器)
- 命名管道(仅限于Windows服务器)
- 共享内存(仅适用于Windows服务器)
有可能是一些软件的第三方件周围提供其他协议,这我不知道,但他们都减少了同样的问题:必须有一个MySQL割断位置运行。
关于第二个想法实际上有访问MySQL数据,无需外部的MySQL服务器上运行的一种方法:将嵌入式MySQL服务器的C库 。 我从来没有尝试过自己,但它看起来像单机应用的可行选择。 我不相信,但是,这是一个理想的解决方案,如果您打算在多个进程或计算机共享相同的MySQL数据。
变通办法
现在我明白了,你是基于你在一个SQL转储文件的形式可能是由MySQL服务器倾倒有数据构建Java桌面应用程序。 如果您希望您的用户能够从这个Java应用程序访问这些数据,我可以看到几个选项:
其计算机上安装一个MySQL服务器,这转储加载到其中。 明显的地狱,但不切实际的,如果我没有听到你。 虽然我猜,当然可以通过Java应用程序自动执行此安装。
你自己的机器上安装一个MySQL服务器,并使其从用户的计算机访问。 主要缺点:它要求用户进行连接。 你也可能会希望为每个用户创建一个不同的数据库。
使用实际无服务器的数据库引擎,例如SQLite的 。 这似乎是您的最佳选择。 它的SQL语法几乎是相同的MySQL的常用操作。 必须有充足的JDBC驱动程序为它的。 再次,我不是在Java中最好的顾问,但是这一次似乎是一个严重的候选人。
据我所知,你不能在JDBC URL为MySQL文件名塞。 MySQL的需要运行,你需要通过它的TCP端口连接到它。 就像是:
jdbc:mysql://localhost:3306/yourDatabaseName
见http://dev.mysql.com/doc/refman/5.6/en/connector-j-reference-configuration-properties.html
文章来源: How to Connect with MySQL Database File( .sql ) using Directory Path Like MS Access?