我正在尝试通过"检查程序"检查MySQL数据库中的某些行,但我总是收到错误消息"错误1045(28000(:用户'root'@'localhost'的访问被拒绝(使用密码:NO("。
不用说,从命令行调用时脚本工作流畅。
脚本如下所示:
#!/bin/bash
data=$(mysql --login-path=client -e "USE *db here*;
SELECT * FROM *table here*
FROM *db here* b );
[...]
*if data ok* exit 0, else exit 1;
莫尼特代码:
check program images with path /root/scripts/check_images
every 144 cycles
if status != 0 then alert
# mysql_config_editor print --all
[client]
user = <dbuser>
password = *****
host = localhost
我做错了什么?
来自Monit Bug Tracker的交叉发布。
这是关于执行的脚本中缺少的环境。 mysql
使用$HOME
来确定.mylogin.cnf
文件的位置。
最终的解决方案非常简单:
#!/bin/bash
export HOME='/root/'
data=$(mysql -e "SELECT CURRENT_USER()");
state=$?
echo "$data"
exit $state