コマンドラインツールmysqladminにDBユーザーパスワードを渡す方法はありますか?


102

私は現在以下を使用していますが、常に手動でパスワードを入力するように求められます。実行可能ファイルを起動するときにコマンドラインで渡す方法はありますか?

mysqladmin processlist -u root -p

3
環境(export MYSQL_PWD=muhpassword)でMYSQL_PWDを設定し、なしでコマンドを実行します-pMySQLプログラムの環境変数を参照してください。マニュアルの悲惨な警告にもかかわらず、これはかなり安全です。環境をフーバーし、darkaspirator.ccに送信する可能性のある同じシェルで奇妙なwarezを開始しない限り。
デビッドトンホーファー2018年

回答:


190

ちょうど答えを見つけました...

mysqladmin processlist -u root -pYOURPASSWORDHERE

パスワードと-pの間にスペースを入れない


14
パスワードにスペースが含まれる場合、引用符はのように、あまりにも許可されている:-p'YOURPASSWORD HERE'
Vigintas Labakojis

40
うわー...本当に直感的... -h localhostとの間のスペースです-u rootが、ではありません-pPASSWORD。すべてを必要以上に難しくする古典的なプログラマー。
Kolobキャニオン

4
@KolobCanyon -uとrootの間のスペースを省略でき、正常に-uroot動作します
Peter Ajtai

11
警告:これは安全ではないと考えられている:dev.mysql.com/doc/mysql-security-excerpt/5.7/en/...は
neverendingqs

3
@KolobCanyon:パスワードがスペースで始まっている場合はどうなりますか?;スペースはオプションとその値を分離したり、パスワードの最初の文字である場合)、プログラマは...を決定することはできません
ステファン・

43

試してください:

--password=PasswordTextHere 

(もちろんテスト目的で)「空の」パスワードを渡す必要がある場合に役立ちます。
Ivo Pereira 2016

これは、コマンドラインで空のパスワードを渡す(サンドボックスインスタンスなど)ための唯一のオプションでもあるようです
penCsharpener

10

これはうまくいくはずです: 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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.