Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令连接拒绝MySQL访问_Mysql_Linux_Amazon Web Services_Ubuntu_Amazon Ec2 - Fatal编程技术网

命令连接拒绝MySQL访问

命令连接拒绝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并手动输入密码,它会让我进入控制台,让我看看密码是否

所以我正在连接一个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 -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*;。谢谢。试过了,双引号没用,不知道为什么。但这个概念是正确的。选择另一个答案,因为它列出了特殊字符。