有没有办法将DB用户密码传递给命令行工具mysqladmin?

Eth*_*len 86 mysql windows windows-server-2008 mysqladmin

我目前使用以下,但它总是提示我手动输入密码.有没有办法在启动可执行文件时在命令行中传递它?

mysqladmin processlist -u root -p
Run Code Online (Sandbox Code Playgroud)

Eth*_*len 163

刚刚找到答案....

mysqladmin processlist -u root -pYOURPASSWORDHERE
Run Code Online (Sandbox Code Playgroud)

密码和-p之间没有空格

  • 哇......真实直观......`-h localhost`和`-u root`之间的空格,但不是`-pPASSWORD`.经典程序员使一切都比必要更难. (31认同)
  • 如果密码包含空格,也允许引号,如:`-p'YOURPASSWORD HERE'` (11认同)
  • 警告:这被认为是不安全的:http://dev.mysql.com/doc/mysql-security-excerpt/5.7/en/password-security-user.html (10认同)
  • @KolobCanyon你可以省略-u和root之间的空格,`-uroot`工作正常 (4认同)
  • @KolobCanyon:如果您的密码以空格开头怎么办?;)程序员无法决定空格是否将选项及其值分开,或者是密码的第一个字符...... (2认同)

小智 39

尝试:

--password=PasswordTextHere 
Run Code Online (Sandbox Code Playgroud)


3lv*_*naz 13

这应该有效: mysql -uroot -p'password'

如果您尝试自动化 mysql 解决方案,您可以使用变量中的密码:

mysql_pass=$(sudo grep -oP "temporary password is generated for root@localhost: \K(.*)" /var/log/mysqld.log)

mysql -uroot -p"$mysql_pass" < somescript.sql