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

31

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

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

无论如何,有没有更好或更容易的方法来实现这个目标?

3个回答

55

您可以使用MySQL Workbench中的迁移向导。只需在源和目标选择中选择相同的本地连接,然后在手动编辑步骤中更改架构名称。如果在手动编辑步骤中没有出现任何内容,请单击下一步,源和目标将出现。缓慢单击源数据库名称并编辑为正确的名称。一直执行到最后,你就可以拥有两个具有不同名称的相同数据库了。请注意,您必须已经创建了目标数据库并授予MySQL Workbench用户权限。


并不是很有用,对于每个表格我都需要编辑方案名称。 - m1ld
5
不需要。只需在手动编辑步骤中修改目标模式名称,您就完成了。 - Alexis Dufrenoy
6
在手动编辑步骤中,您可能需要多次单击数据库名称,直到可以进行编辑。 - Ahmed Adaileh
5
我必须进行双击并保持第二个点击几秒钟。这很烦人。 - Daz
@Daz,这个方法很有效,点击目标模式几次就可以使模式名称可编辑!谢谢。 - Abdulaziz Hamdan
5
为了方便未来的搜索者,需要澄清一下:Workbench说要在选中后点击名称才能进行编辑。因此,尝试双击或者连续快速点击可能不起作用。我的成功经验是单击,暂停,再次单击。 - Glen Despaux Jr

4

我试图在MySQL Workbench 8.0中实现这个功能。然而,我一直收到有关列统计的错误。主要思路是使用位于MySQL Workbench安装目录中的mysqldump.exe导出数据。因此,假设您使用的是Windows操作系统:

  1. Open Powershell, navigate to mysqldump.exe directory. In my case the command is:

                    cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE
    
  2. Export database by executing mysqldump providing the right arguments:

    ./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]"
    
  3. Without changing directory, import the exported file (.sql) by using the following command in Powershell:

    Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP]  --database=[nameOfNewDatabase] --binary-mode=1
    
您可以在文档这里查看有关mysqldump选项的更多信息。
请注意以下事项:
  • 不要忘记用您自己的值替换[]中的值并删除[]。存在引号("")时,请勿删除。
  • 不要切换到cmd或类似git-bash的其他终端,因为上述操作将无法正常工作。
  • 至于步骤3,我是从MySQL Workbench创建了新数据库,然后运行了powershell命令。

1
  • 首先,使用CREATE DATABASE语句创建一个新的数据库。
  • 其次,使用mysqldump工具导出要复制的数据库的所有数据库对象和数据。
  • 第三,将SQL转储文件导入到新的数据库中。

我尝试了这个解决方案,但是关于第二步,我该如何发出命令工具? - Daredevil
2
我需要另外一种方法来做这件事。 - Daredevil
如果你需要处理一个庞大的数据库,使用这个程序会非常困难。如果你正在将数据迁移到同一服务器上的另一个数据库,Workbench 的迁移方法是最好的选择。 - Paolo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接