如何在mysql workbench之外的mysql workbench中运行导入或导出命令?

时间:2017-10-05 14:56:53

标签: mysql mysql-workbench

我看到工作台显示正在为导入和导出运行的命令,并且我想在独立脚本中的另一台机器上运行该命令。不幸的是,该脚本似乎引用了一个"默认文件"这是临时的,在命令运行后无法访问...似乎每次运行命令时工作台都会动态创建这个extraparams.cnf文件..因此,我很难在其他地方重现此命令

13:45:52 Restoring /Users/wes/dumps/Dump20170907.sql
Running: /Applications/MySQLWorkbench.app/Contents/MacOS/mysql --defaults-file="/var/folders/x1/8vgyglcd0hv44_5fdlqj1zssm53dzs/T/tmpsmXKI3/extraparams.cnf" --protocol=tcp --host=server.edu --user=riuser --port=3306 --default-character-set=utf8 --comments --database=prd2 < "/Users/wes/dumps/Dump20170907.sql"
13:46:02 Import of /Users/wes/dumps/Dump20170907.sql has finished

有什么建议吗?

谢谢。

BTW:我在一个月前在mysql论坛上发布了这个没有回应: https://forums.mysql.com/read.php?152,660219

2 个答案:

答案 0 :(得分:1)

默认文件通常包含用户名和密码。忽略工作台正在做什么,从头开始学习会更容易。

假设命令在mysql本地主机上运行......

mysqldump prd2 --single-transaction --routines --master-data=2 > prd2.sql
mysql prd2 < prd2.sql

根据需要添加其他选项。

如果在Linux / Unix上,并且它是一个大数据库,请考虑nohup <command> &,将其置于后台,这样您就不必看空闲终端。

答案 1 :(得分:1)

虽然我同意Kevin Bott给出的接受答案,但我在Mac上做的是残忍的黑客攻击默认文件extraparams.cnf的内容。

创建任何用户可写的文件夹

cd /tmp
mkdir hack
chmod a+xw hack

执行MySQL Workbench导出一次并打开Export Progress选项卡

将导出使用的mysqldump二进制文件替换为转储默认文件内容的伪造(请参阅导出进度日志以获取在您的情况下使用的正确路径)

cd /private/var/folders/ks/vmng3tc51nb43xkklk7jjxxh0000gn/T/
mv AppTranslocation AppTranslocation.orig
mkdir -p AppTranslocation/10D5E741-FD2F-4247-9CEE-E8A82D8EE23F/d/MySQLWorkbench.app/Contents/MacOS
cd AppTranslocation/10D5E741-FD2F-4247-9CEE-E8A82D8EE23F/d/MySQLWorkbench.app/Contents/MacOS

vim mysqldump

  1 #!/bin/bash
  2 if [ $1 = '--version' ] 
  3 then 
  4     echo 'mysqldump  Ver 10.13 Distrib 5.6.23, for osx10.8 (x86_64)'
  5     exit 0
  6 fi  
  7 
  8 VALUE=`echo $1 | sed 's/^[^=]*=//g'`
  9 cat $VALUE > /tmp/hack/extraparams.cnf

chmod +x mysqldump

点击&#39;再次导出&#39;在“导出进度”选项卡中

检查捕获的.cnf文件的内容

cd /tmp/hack
cat extraparams.cnf