Can';t使用命令行中指定的密码登录mysql

Can';t使用命令行中指定的密码登录mysql,mysql,login,command-line-interface,Mysql,Login,Command Line Interface,我可以使用以下方式登录我的mysql服务器: mysql -u root -p 然后在提示符处指定密码(即PASS123)。登录成功 但当我尝试时: mysql -u root --password="PASS123" 我得到: mysql:[警告]在命令行界面上使用密码可能不安全。 错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是) 我的MySQL版本:MySQL版本14.14发行版5.7.20,适用于Linux(x86_64),使用EditLi

我可以使用以下方式登录我的mysql服务器:

mysql -u root -p
然后在提示符处指定密码(即PASS123)。登录成功

但当我尝试时:

mysql -u root --password="PASS123"
我得到:

mysql:[警告]在命令行界面上使用密码可能不安全。 错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是)

我的MySQL版本:MySQL版本14.14发行版5.7.20,适用于Linux(x86_64),使用EditLine包装器


也许有人已经有这个问题了?这是一个需要额外设置一些特权的问题,以允许使用命令行上指定的密码登录吗?

正如@BillKarwin发布的,从密码中删除的$符号解决了这个问题

我猜您的密码中有一些特殊于shell的字符,如
$
。无论如何,您应该学习如何使用选项文件,这样就不必在命令行上输入密码。谢谢你指出这些特殊的字符。我的密码中有$sign。改变了。现在它不包含$,运行良好。这很奇怪,因为我在命令行中指定密码时使用了引号,并认为这解决了特殊字符问题:)正如@BillKarwin发布的一样,从密码中删除的$符号解决了这个问题。但这不是解决方案,而是解决办法。如果密码包含特殊字符(当前,默认情况下是密码策略所需的),如何将密码作为命令行参数事件传递?在命令行上,在密码周围使用单引号而不是双引号,以禁止对某些类型的元字符进行shell解释。但实际上,使用选项文件。你不应该在命令行上输入密码。