用户标志后的mysql连接空格

Moh*_*jib 3 mysql console command-line

我有一个问题,mysql 连接字符串中用户标志后面的空格有什么意义-u

mysql -u myname -pmypass mydb
Run Code Online (Sandbox Code Playgroud)

我的意思是说,上面的命令工作得很好,如果我没有在后面传递一个空格-u并且只写上面的命令如下。

mysql -umyname -pmypass mydb
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下搜索词来搜索解释。

  • mysql login whitespace after user flag
  • mysql connection console whitespace after user flag

我发现在密码标志后提到了空格-p这里。但是页面没有讨论用户标志之后的空格-u

.... -p 或 --password= 和后面的密码之间不能有空格。

Mar*_*lff 6

-p选项采用可选参数:

mysql --help --verbose
...
  -p, --password[=name]
  Password to use when connecting to server. If password is
  not given it's asked from the tty.
Run Code Online (Sandbox Code Playgroud)

因此,包含以下内容的命令行:

-p mydb
Run Code Online (Sandbox Code Playgroud)

会模棱两可......这是否意味着:

  • 提示用户输入密码,并使用mydb数据库 ?
  • 使用密码mydb,而不是设置默认数据库?

这就是文档坚持密码选项的特定规则的原因:如果给定值,则必须附加(无空格)。

对于始终带有参数的选项,例如-u,没有特殊考虑,因此空格并不重要。

有关命令行选项的完整文档,请参阅手册:

http://dev.mysql.com/doc/refman/5.7/en/command-line-options.html