Mysql

如何在不輸入空密碼的情況下連接到 mysql?

  • June 30, 2015

我剛剛安裝了 MySQL,預設情況下 root 使用者沒有密碼。如果我用這個命令連接:

mysql --port=3307 --host=127.0.0.1 -uroot -p

它要求我輸入密碼,我只需按輸入鍵,它就會連接我。但是,我想通過以非互動方式將語句傳遞給它來製作腳本的這一部分,如下所示:

echo "$statement" | mysql --port=3307 --host=127.0.0.1 -uroot -p

但是,當我真正這樣做時,它仍然要求我輸入密碼。我如何讓它不要求輸入密碼,而只是不使用密碼?

我嘗試刪除-p,並收到以下消息:

$ mysql --port=3307 --host=127.0.0.1 -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我希望會有某種 –nopassword 參數,但我找不到。

原來答案實際上是使用 -p - 長版本允許您將其設置為空,如下所示:

mysql --port=3307 --host=127.0.0.1 -uroot --password=

如果您的 MySQL 客戶端/伺服器版本是 5.6.xa 避免WARNING消息或放置的方式password in command line,您可以使用mysql_config_editor工具:

   mysql_config_editor set --login-path=local --host=localhost --user=username --password

然後你可以在你的 shell 腳本中使用:

   mysql --login-path=local  -e "statement"

代替:

   mysql -u $Username -p$Pass -e "statement"

引用自:https://dba.stackexchange.com/questions/105217