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


    今天在公司使用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

  • 相关阅读:
    Co.
    编程
    编程
    编程
    数据同步
    Co.
    Co.
    Co.
    Co.
    sss
  • 原文地址:https://www.cnblogs.com/DarrenChan/p/11434858.html
Copyright © 2020-2023  润新知