shell 树莓派4到一个远程MySql:标准差:/bin/sh:1:未找到

r7s23pms  于 2023-01-09  发布在  Shell
关注(0)|答案(1)|浏览(147)

继续我之前的问题(详细信息:connect Raspberry Pi 4 to a remote MySql database located on a server),我一直在挖掘,以找出导致错误的原因,以及为什么我的Raspberry Pi 4无法通过JavaScript连接到远程MySql数据库,但它通过Python脚本进行了完美的连接。
我执行了以下shelljs.exec()命令以了解原因(灵感来自:how to run node shelljs in sync mode and get stdout and stderr),我得到了以下输出。我需要帮助,以了解这个错误的意思,我需要做修复它。我的代码和输出:

>> var shell = require('shelljs');
>> const { stdout, stderr, code } = shell.exec(command, { silent: true })
>> console.log("Stdout: "+stdout+", Stderr: "+stderr+", Code: "+code)
# Output is 
>> Stdout: , Stderr: /bin/sh: 1: mysql: not found, Code: 127

我从上面的理解是,没有输出。但有一个错误消息称为/bin/sh: 1: mysql: not found和错误代码是127。我感谢您的帮助,了解这个错误的意思和我需要做什么?它是否告诉我的Raspberry Pi 4是缺少一些东西,所以它无法通过JavaScript连接到远程MySql
更新:
1.基于以下@Mark Setchell建议:我已通过引用https://pimylifeup.com/raspberry-pi-mysql/RPi上安装了MySql代码为sudo apt install mariadb-server

1.@Mark Setchell建议:这是终端的响应

pi@raspberrypi:~ $ /usr/bin/mysql -u fieldArduinoYUN -h aa.bb.cc.dd -p abcdf -e "use field_data; SELECT product FROM product_list WHERE product_id = 123;"
Enter password:    
ERROR 1044 (42000): Access denied for user 'fieldArduinoYUN'@'%' to database 'abcdf'
pi@raspberrypi:~ $
j9per5c4

j9per5c41#

总结意见交流,有以下问题和解决方案。
以下错误表示shell(bash/dash/ash等)无法找到mysql命令:

/bin/sh: 1: mysql: not found

这通常是由于PATH变量没有设置为告诉shell mysql在文件系统中的位置。
在这种情况下,原因是没有安装mysql客户端,OP认为安装Python模块也会提供命令行MySQL客户端。
解决方案是安装MYSQL客户端工具。
第二个问题是mysql客户端工具的密码未正确提供,导致:

ERROR 1044 (42000): Access denied

这可以通过在-p选项后立即提供密码和***不带空格***来解决,如下所示:

/usr/bin/mysql -u USER -h aa.bb.cc.dd -pPASSWORD -e "SOMECOMMAND"

相关问题