bash脚本中的MySQL ERROR 1045 - 访问被拒绝

时间:2014-08-14 02:03:30

标签: mysql bash

我试图从bash脚本运行MySQL命令:

mysql --user=[USER] --password=[PASSWORD] --database=[DATABASE] --execute="DELETE FROM table WHERE created_at < NOW() - INTERVAL 7 DAY"

在bash脚本和终端中,我都得到了同样的错误:

ERROR 1045 (28000): Access denied for user '[USER]'@'localhost' (using password: YES)

我已经测试过运行mysql -u [USER] -p并且会连接,所以我知道我的凭据是正确的。

我错过了什么?我在网上看到一些事情表明端口可能有误,但它已全部在localhost上运行,这是正确的

2 个答案:

答案 0 :(得分:2)

想通了。问题不是权限,而是密码本身。我需要在密码中转义$,因此代码更改为以下内容(使用密码pass$word):

mysql --user=[USER] --password=pass\$word --database=[DATABASE] --execute="DELETE FROM table WHERE created_at < NOW() - INTERVAL 7 DAY"

现在就像一个魅力。

答案 1 :(得分:1)

1.如果没有添加mysql.user

,您可以在此表中USERlocalhost查看您的mysql表格USER

2.如果USER有权进入此数据库,请检查您的USER权限。