ssh 远程执行绝对路径命令mysqld_multi 报my_print_defaults不存在

通过SSH直接执行远程命令(这种方式会使用Bash的non-interactive + non-login shell模式)找不到命令
参考:http://ghoulich.xninja.org/2017/05/09/how-to-find-env-vars-with-ssh-remote-exec-commands/

ssh root@ip1 "/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/mysql/3306.cnf --no-log start 3306"  
WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.
ABORT: Can't find command 'my_print_defaults'.
This command is available from the latest MySQL
distribution. Please make sure you have the command
in your PATH.

 

问题

操作ip2却没有报此错误,而且其配置文件~/.bashr中也没有关于mysql环境变量的配置

原因

non-interactive + non-login shell模式的bash执行的配置文件是~/.bashr而不是~/.bash_profile
mysqld_multi会调用my_print_defaults命令,而且不会带上绝对路劲
发现ip2机器上比ip1多了个/usr/bin/my_print_defaults

[root@ip2 mysql]# rpm -qf /usr/bin/my_print_defaults
mysql-5.1.73-8.el6_8.x86_64

 

原来是是通过rpm包安装的

解决方法

[root@ip1 ~]# ln -s  /usr/local/mysql/bin/my_print_defaults /usr/bin

 

转载于:https://www.cnblogs.com/Bccd/p/7944927.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值