go mysql写入特殊字符_使用mysqldump的mysql密码中的特殊字符

我有以下ssh脚本:

#Here I am getting the mysql password for the root user

password=$(cat /root/.my.cnf | grep "password" | awk -F\" '{print $2}')

#here I am trying to dump the database remotely

mysqldump -uroot -p$password $db | ssh root@$destination_server "cat > /backup/mysql/$db.sql"

问题是我遇到以下错误:

/bin/bash: -c: line 0: syntax error near unexpected token `)'

/bin/bash: -c: line 0: `mysqldump -uroot -pbyt)uy6 database_name '

我已经测试了很多,发现错误是由于密码中的特殊字符引起的。由于我是从.my.cnf文件中获取密码的,因此无法通过对转义字符进行硬编码来对其进行转义。

谁能为我提供一种方法,也许可以在$ password变量中搜索那些特殊字符并添加到这些转义斜杠(“ \”)中。

编辑:我忘了提到我是通过使用vzctl exec命令通过OpenVZ部分虚拟化执行此操作的,这就是为什么我需要一种允许我按要求转义特殊字符的方法的原因。我开发的方法是sed命令的简单使用:

sed 's/[!-+]/\\&/g'

谢谢大家的帮助。

最好的祝福!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值