我看到工作台显示正在为导入和导出运行的命令,并且我想在独立脚本中的另一台机器上运行该命令。不幸的是,该脚本似乎引用了一个"默认文件"这是临时的,在命令运行后无法访问...似乎每次运行命令时工作台都会动态创建这个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
答案 0 :(得分:1)
默认文件通常包含用户名和密码。忽略工作台正在做什么,从头开始学习会更容易。
然后意识到你应该使用mysql_config_editor加密密码
https://dev.mysql.com/doc/refman/5.5/en/mysql-command-options.html
https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html
https://dev.mysql.com/doc/refman/5.5/en/option-files.html
https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html
假设命令在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