MySQL Workbench - 如何在同一服务器上克隆具有不同名称的数据库?

新手上路,请多包涵

我正在使用 MYSQL Workbench,我想在同一台服务器上克隆一个具有不同名称的数据库。它应该将所有表结构和数据复制到新数据库中。

我知道通常的方法可能是使用 data export 生成数据库的 sql 脚本,然后在新数据库上运行该脚本,但我遇到了一些问题。

无论如何,有没有更好的方法或更简单的方法呢?

原文由 Daredevil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 836
1 个回答

我试图在 MySQL Workbench 8.0 中做到这一点。但是,我一直收到有关列静态的错误。主要思想是使用位于 MySQL Workbench 安装目录中的 mysqldump.exe 来导出数据。因此,假设一个面向 Windows 的平台:

  1. 打开 Powershell ,导航到 mysqldump.exe 目录。在我的情况下,命令是:
                    cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE

  1. 通过执行提供正确参数的 mysqldump 导出数据库:
    ./mysqldump.exe --host=[hostServerIP] --protocol=tcp --user=[nameOfUser] --password=[yourPassword] --dump-date=FALSE --disable-keys=FALSE --port=[portOfMysqlServer] --default-character-set=utf8 --skip-triggers --column-statistics=0 "[databaseName]"

  1. 在不更改目录的情况下 ,在 Powershell 中 使用以下命令导入导出的文件 (.sql):
    Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP]  --database=[nameOfNewDatabase] --binary-mode=1

您可以在 此处 查看文档以获取有关 mysqldump 选项的更多信息。

请注意以下事项:

  • 不要忘记将 [] 中的值替换为您自己的值并删除 []。不要删除存在的引号(“”)。
  • 不要将 Powershell 切换 为 cmd 或 git-bash 之类的东西,因为上述方法不起作用。
  • 就第 3 步而言,我从 MySQL Workbench 创建了新数据库,然后运行了 powershell 命令。

原文由 Andreas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题