Appserv命令行批处理

问题描述:

我使用Java和MySQL与Appserv。我有一个名为“modb.sql”的数据库文件(在与我的程序位置有关的特定目录中),我经常需要删除旧数据库,创建一个新数据库(每次都在phpMyAdmin中具有相同名称)并导入将modb.sql文件添加到新的数据库中。Appserv命令行批处理

有没有办法让这个过程自动化,并将它与程序或安装文件包含在一起?而不是由我或用户手动完成。

我可以使用另一个MySQL数据库管理器或C#而不是Java,如果那样会允许进程是自动的。

+0

做了一个快速搜索,我打开了这个页面http://www.toadworld.com/platforms/mysql/w/wiki/6151.mysql-batch-imports.aspx,它可能有所有的命令。处理这个问题并发回一个批量文件的尝试。发布您遇到的任何错误或区域。 – user4317867 2015-02-12 00:09:03

您可以通过Windows命令行或计划任务完成所有这些操作。我没有安装Appserv,所以我无法为您提供所有确切的文件路径位置,这些位置可能因您的安装位置而异。你也可以在技术上从Java应用程序中做到这一点,但这是一个很大的开销,并没有像计划任务那样将它自动化。

您将基本上直接从您的日程安排任务或批处理文件调用mysql.exe命令。

首先,我们来创建一个新的SQL文件,也许叫做DropAndCreateMoDb.sql。放下命令(DROP DATABASE ...)并在此处重新创建数据库。当然,精确的drop命令取决于你所说的数据库,而create命令很大程度上依赖于modb.sql创建的结构;您还将在此创建您需要的任何权限。这使关于删除和重新创建的部分自动化。

写一个批处理文件。你并不需要这么做,你可以从日程安排任务中调用两次MySQL,但我们正在尝试以正确的方式做到这一点。这是未经测试的,显然你会想要替换正确的路径和MySQL用户名/密码 - 我建议为此创建一个维护帐户,以便您的完整凭证不在批处理文件中;平时免责声明申请关于妥善保护您的帐户),但也许是这样的:

@ECHO OFF C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\DropAndCreateMoDb.sql C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\modb.sql

显然,这不赶任何错误,你的用户名和密码都在这里清楚,但只要这是在您的本地开发机器上用于开发目的,并且您知道并理解风险,它就会工作。

此时,您可以双击.bat文件,它应该删除并重新创建数据库。要完成它并将其完全自动化,您将添加一个计划任务。转到计划任务控制面板并添加一个新任务。告诉它新的路径DropAndRecreate.bat或任何您决定调用它的路径,告诉Windows何时需要任务运行,现在它是完全自动化的。

这里有很多变量使得实现的细节非常依赖于你的确切配置等等。确保你明白每一步实际做了什么,而不是仅仅复制和粘贴。