【问题标题】:mysql database restoring in JAVA在JAVA中恢复mysql数据库
【发布时间】:2015-08-14 11:04:17
【问题描述】:

我可以找到一些命令,通过这些命令我可以将一个或一些表从备份 sql 恢复到数据库。

但是如果我想从备份 sql 创建完整的数据库,过程是什么?

请注意,服务器中不存在该数据库。我需要从备份文件中创建它。

【问题讨论】:

  • mysqldump 或 gui 工具导出例程,如 Mysql Workbench 之一。生成一个脚本。创建新的架构/数据库。运行脚本
  • 但是服务器中没有现有的数据库...所以当像这样的字符串中的数据库名和密码将在那里 String[] executeCmd = new String[]{"mysql", "--user =" + dbUserName, "--password=" + dbPassword, dbName,"-e", " source "+source};怎么放???因为服务器中没有数据库。转储来自另一个位置,我之前无法创建它。 @德鲁
  • 因此您无法以任何方式创建新数据库。您没有办法创建数据库吗?如果是这样的话,我知道我帮不了你
  • 有个好用的工具flywaydb 看看flywaydb.org

标签: java mysql database restore


【解决方案1】:

我会给你一个来自Mysql Workbench的例子,可以从Oracle/Mysql免费下载。

您从左上方的窗口窗格进入管理/数据导出。选择数据库。确定要导出的内容,例如数据和结构、存储过程、视图等。

您可以为每个表导出到单独的 .sql 文件,或者将它们全部压缩在一起。所以现在你有一个或多个 .sql 文件。

更改 .sql 的顶部

`CREATE DATABASE  IF NOT EXISTS `myDbName` ... ;
USE `myDbName`;

第 1 行和第 2 行

将这些更改为您的新数据库名称。

保存 .sql 文件。如果有多个 .sql 文件,请对所有文件执行相同操作。

在具有足够权限的服务器上运行这些脚本。例如,假设您有一个像 dbAdminUser 这样的用户,通过这样的调用来实现:

CREATE USER 'dbAdminUser'@'localhost' IDENTIFIED BY 'myPassword';
CREATE USER 'dbAdminUser'@'127.0.0.1' IDENTIFIED BY 'myPassword';
CREATE USER 'dbAdminUser'@'%' IDENTIFIED BY 'myPassword';

GRANT ALL ON *.* TO 'dbAdminUser'@'localhost';
GRANT ALL ON *.* TO 'dbAdminUser'@'127.0.0.1';
GRANT ALL ON *.* TO 'dbAdminUser'@'%';

我看到使用 dbAdminUser 使用上述方法制作成功。

【讨论】:

  • 在您的评论中,不需要 DbName,因为脚本正在创建然后使用
  • 如果使用我的答案,则以用户 dbAdminUser 的身份连接,并跟随它
  • mysql -udbAdminUser -pmyPassword < dump.sql 按照我的回答中所述修改 dump.sql 后
  • 我要试试。我正在尝试一些东西......不幸的是我把它粘贴在这里。这就是我删除的原因。但我不确定我是否能够修改 SQL 。这些事情将由一个中间权威来完成。他们只会收到转储。我只是在编写代码来匿名数据库。匿名数据库将发送给我。根据您的评论,我认为我需要修改 sql 或必须先创建数据库。没有办法直接创建数据库。
  • 你还能想出别的办法吗? @德鲁
猜你喜欢
  • 1970-01-01
  • 2013-01-17
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多