Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL工作台-如何在同一台服务器上用不同的名称克隆数据库?_Mysql_Sql_Mysql Workbench - Fatal编程技术网

MySQL工作台-如何在同一台服务器上用不同的名称克隆数据库?

MySQL工作台-如何在同一台服务器上用不同的名称克隆数据库?,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我正在使用MYSQL Workbench,我想在同一台服务器上用不同的名称克隆一个数据库。它应该将所有表结构和数据复制到新数据库中 我知道通常的方法可能是使用数据导出生成数据库的sql脚本,然后在新数据库上运行脚本,但我遇到了一些问题 不管怎样,有没有更好或更简单的方法呢? 首先,使用CREATEDATABASE语句创建一个新数据库 其次,使用mysqldump工具导出要从中复制的数据库的所有数据库对象和数据 第三,将SQL转储文件导入新数据库 您可以从MySQL工作台使用迁移向导。只需在源和目

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

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

不管怎样,有没有更好或更简单的方法呢?

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

您可以从MySQL工作台使用迁移向导。只需在源和目标选择中选择相同的本地连接,然后在手动编辑步骤中更改架构名称。深入到最后,瞧,你有两个同名的数据库。

我曾在MySQL Workbench 8.0中尝试过。然而,我一直收到一个关于列静态的错误。其主要思想是使用MySQL Workbench安装目录中的mysqldump.exe导出数据。因此,假设一个面向Windows的平台:

  • 打开Powershell,导航到mysqldump.exe目录。在我的情况下,命令是:

                    cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE
    
  • 通过执行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]"
    
  • 在不更改目录的情况下,使用Powershell中的以下命令导入导出的文件(.sql):

    Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP]  --database=[nameOfNewDatabase] --binary-mode=1
    
  • 您可以在文档中查看有关mysqldump选项的更多信息

    请注意以下事项:

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

    我尝试了此解决方案,但关于第2步,我如何发出命令工具?我需要另一种方法来执行此操作如果您必须处理一个庞大的数据库,则此过程将非常困难。如果您要迁移到同一服务器中的另一个数据库,Workbench的迁移方法不会真正有用,对于每个表,我需要编辑方案名称。@m1ld不,您不需要。只需在手动编辑步骤中编辑目标架构名称,您就完成了。您可能需要在手动编辑步骤中多次单击db名称,直到它可编辑为止。我必须双击它,然后按住第二次单击几秒钟。这很烦人。@Daz做了这个把戏,多次点击目标模式使模式名可编辑!谢谢