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

bash脚本中的MySQL错误1045-访问被拒绝,mysql,bash,Mysql,Bash,我正在尝试从bash脚本运行MySQL命令: mysql --user=[USER] --password=[PASSWORD] --database=[DATABASE] --execute="DELETE FROM table WHERE created_at < NOW() - INTERVAL 7 DAY" 我已经测试过运行mysql-u[USER]-p,这将连接起来,因此我知道我的凭据是正确的 我错过了什么?我在网上看到一些东西表明端口可能错误,但它都设置在localhost上

我正在尝试从bash脚本运行MySQL命令:

mysql --user=[USER] --password=[PASSWORD] --database=[DATABASE] --execute="DELETE FROM table WHERE created_at < NOW() - INTERVAL 7 DAY"
我已经测试过运行
mysql-u[USER]-p,这将连接起来,因此我知道我的凭据是正确的


我错过了什么?我在网上看到一些东西表明端口可能错误,但它都设置在
localhost
上运行,这是正确的1。也许你应该检查你的mysql表
mysql.user
如果
user
localhost
,如果没有,请添加你的
user


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

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

mysql--user=[user]--password=pass\$word--database=[database]--execute=“从创建的表中删除”\u at

现在工作起来很有魅力。

您对该数据库或表有修改权限吗?事实上,我刚刚发现:我的密码中有一个
$
,bash试图将其解释为一个变量。有没有办法逃脱
$
而不是更改我的密码?在密码周围使用单引号?
ERROR 1045 (28000): Access denied for user '[USER]'@'localhost' (using password: YES)
mysql --user=[USER] --password=pass\$word --database=[DATABASE] --execute="DELETE FROM table WHERE created_at < NOW() - INTERVAL 7 DAY"