mysql - Appserv 命令行批处理

标签 mysql batch-file installation

我使用 Java 和 MySQL Appserv 。我有一个名为“modb.sql”的数据库文件(在相对于我的程序位置的特定目录中),我经常需要删除旧数据库,创建一个新数据库(每次都在 phpMyAdmin 内使用相同的名称)并导入将 modb.sql 文件复制到新数据库。

有没有办法自动执行此过程并将其包含在程序中或安装文件中?而不是由我或用户手动执行。

如果允许该过程自动进行,我可以使用另一个 MySQL 数据库管理器或 C# 来代替 Java。

最佳答案

您可以从 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 您希望任务何时运行,现在它是完全自动化的。

这里有很多变量,使得实现的细节非常依赖于您的确切配置等。确保您了解每个步骤的实际作用,而不仅仅是复制和粘贴。

关于mysql - Appserv 命令行批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461583/

相关文章:

r - 将R版本从3.0.3更新到3.1.2

php - PDO 连接语句

java - 长时间在 MySql 中 hibernate 连接导致 Hibernate 中的进程缓慢

powershell - 如何使用通配符在子目录中查找文件

java - 如何在没有管理员的情况下在USB驱动器上安装android studio

c# - 使用 Windows Installer 安装时如何更改应用程序的 exe.config 文件

mysql - 在 Mac 上无法连接到 '127.0.0.1' (61) 上的 MySQL 服务器

mysql - 从查询执行中删除使用临时和文件排序

powershell - 如何从powershell获取返回值并将其放入批处理文件中?

java - Izpack 失败并显示 'There is no script engine for file extension ".js",