命令连接拒绝MySQL访问
所以我正在连接一个AWS EC2 Ubuntu 16.04实例。作为制作脚本的一部分,我会: mysql-u root-pmy secret-e source resetDb.sql;>>lastRun.log 此resetDb.sql具有创建和填充数据库信息的查询。然后继续使用应用程序 问题是mysql通过抛出 错误1045 28000:使用密码“是”拒绝用户“root”@“localhost”的访问 但是如果我连接mysql-uroot-p并手动输入密码,它会让我进入控制台,让我看看密码是否正确 我在服务器上得到这个输出 $mysql-版本 mysql版本14.14发行版5.7.20,适用于Linux x86_64,使用EditLine包装器 $uname-a Linux ip-xx.xx.xx.xx 4.4.0-1038-aws 47 Ubuntu SMP周四9月28日20:05:35 UTC 2017 x86\u 64 x86\u 64 GNU/Linux 我在另一个问题中看到了有关刷新权限和重置根密码的问题,但我的密码是正确的,因此对我没有任何好处命令连接拒绝MySQL访问,mysql,linux,amazon-web-services,ubuntu,amazon-ec2,Mysql,Linux,Amazon Web Services,Ubuntu,Amazon Ec2,所以我正在连接一个AWS EC2 Ubuntu 16.04实例。作为制作脚本的一部分,我会: mysql-u root-pmy secret-e source resetDb.sql;>>lastRun.log 此resetDb.sql具有创建和填充数据库信息的查询。然后继续使用应用程序 问题是mysql通过抛出 错误1045 28000:使用密码“是”拒绝用户“root”@“localhost”的访问 但是如果我连接mysql-uroot-p并手动输入密码,它会让我进入控制台,让我看看密码是否
有人有线索吗?其思想是运行脚本来自动设置整个服务器。提前感谢。您是否尝试在密码周围使用引号? 试试这个:
mysql -u root -p"your_passord" -e "SHOW DATABASES"
您甚至可以在其中添加相等的内容:
mysql --user="root" --password="your_passord" -e "SHOW DATABASES"
如果您想要永久性的东西,似乎可以尝试从不测试它:您的密码使用命令shell正在解释的特殊字符。注意密码中的这些字符: $&!\[]<>`
请将您的密码放在Linux的单引号中:“我的路径问题和密码”。对于Windows,请使用双引号。您还可以使用bakslash \转义有问题的字符。另一种可能是您的根密码有特定的主机限制 所以如果你跑
select user,host,password from mysql.user;
你可以看到root@localhost, root@127.0.0.1,和root@%都存在,但具有不同的密码。URL脚本使用的是什么?尝试此操作后,root仅存在于localhost上。幸运的是,我只是从服务器本地主机内部使用它。你做得很对。我有‘$’。用引号括起来就足够了,就像mysql中的mysql-u root-p'my-$ecret'-e select*;。谢谢。试过了,双引号没用,不知道为什么。但这个概念是正确的。选择另一个答案,因为它列出了特殊字符。