[问题排查]通过调度系统远程执行脚本,报mysql command not found异常

本文详细记录了在使用LS调度系统执行远程脚本时遇到的“mysql command not found”错误,并分享了解决方案。问题源于调度系统与本地开发机的MySQL路径不一致,提供了修改脚本和创建软链接两种解决方法。
摘要由CSDN通过智能技术生成

今天在公司使用LS调度系统(百度内部的工具),执行远程脚本的时候,每次都失败。

脚本内容比较简单,其实就是将HDFS(AFS)中的数据插入到Palo(Doris)数据库中,脚本如下:

mysql -h xxx -P 9030 -uxxx -p'xxx' -e "LOAD LABEL baijiahao.bjh_spider_view_count_${day}_${label_time} (DATA INFILE('afs://xxx/user/feed-bjh/database/spider_view_count_showx/${day}/*') INTO TABLE bjh_spider_view_count) PROPERTIES('cluster'='feed_bjh','timeout'='86400','max_filter_ratio'='0.0001')"

我开始一直以为是我脚本的问题,一直在远程开发机测试这段脚本,发现可以正确执行,但是通过调度系统调度就会失败。

开始没有关注错误日志,突然看到日志报的错误竟然是:

mysql command not found

我在开发机测试mysql指令是没有问题的。

搜索资料以后发现,其实这个问题的原因是我mysql安装在我设置的data分区里,没有在默认的/usr/bin/mysql里,ssh远程执行命令的时候它是去/usr/bin里读取的,所以自然找不到。

通过which mysql,发现我的mysql路径是:

alias mysql='/home/work/opt/mysql/mysql-5.6.38/bin/mysql'
    ~/opt/mysql/mysql-5.6.38/bin/mysql

现在两种解决办法:

(1)在脚本里面写mysql的全称,

/home/work/opt/mysql/mysql-5.6.38/bin/mysql -h xxx -P 9030 -uxxx -p'xxx' -e "LOAD LABEL baijiahao.bjh_spider_view_count_${day}_${label_time} (DATA INFILE('afs://xxx/user/feed-bjh/database/spider_view_count_showx/${day}/*') INTO TABLE bjh_spider_view_count) PROPERTIES('cluster'='feed_bjh','timeout'='86400','max_filter_ratio'='0.0001')"

(2)建立软连接,需要root权限,

ln -s /home/work/opt/mysql/mysql-5.6.38/bin/mysql /usr/bin/mysql

 

 

参考

https://blog.csdn.net/qq1124794084/article/details/77529889

 

转载于:https://www.cnblogs.com/DarrenChan/p/11434858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值