2017-02-14 11 views
2

変数$ db_pwdにパスワードを保存していて、それをシェルスクリプトのmysql_config_editorに渡したいと思います。私は設定ファイルまたはdb_pwd環境変数を使用することはできません。シェルで変数を使用してmysql_config_editorにパスワードを渡す

私はこの

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

https://stackoverflow.com/a/20854048/6487831を)やっています。

パスワードは「パスワードを入力してください」ですが、変数を使用してパスワードを入力したいと考えています。

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

mysql_config_editor set --login-path=local --host=localhost --user=username --password | echo $db_pwd 

echo "$db_pwd" | mysql_config_editor set --login-path=local --host=localhost --user=username --password 

  • は、私はこれを試してみました。しかし、これは、 "このパスはすでに存在します、書き直し(y/n)。
  • オプションファイルのような警告がありますが、私は最初の引数として使用していても変数が見つかりません。オプションには、これを行うにはどのような方法

?MySQLの設定エディタとの互換性ファイルであるか、それとも私がmysql代わりのmysql_config_editorを使用してに戻す必要がありますか?

+0

は、HTTPSを見ますstackoverflow.com/a/22513843/1497139 –

答えて

0

--password引数を明示的にコマンドでパスワードを渡すことを避けるために設計されていますこれは悪いセキュリティとみなされます。

言われていること、あなたはとにかくmysql_config_editorにパスワードを供給しようとすることができます:

echo "$db_pwd" | mysql_config_editor set --login-path=local --host=localhost --user=username --password 

を(mysql_config_editorではなく、内標準の現在の端末から入力を取得を主張する場合、これは動作しない場合があります。そのような場合は、変数からパスワードを提供する方法がありません)。

あなたは州にリンクした回答として、mysqlを直接使用してパスワードを入力できます。 mysql_config_editorを使用すると、パスワードを.mylogin.cnfに暗号化して保存することができます。つまり、端末からパスワードを1回入力し、設定ファイルに暗号化して保存し、そこから使用できます。

参考:https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html

更新:あなたはunbuffer utilityを使用することによって、それは対話型端末から読んでいるという考えにmysql_config_editorをだますことができるかもしれ://:

echo "$db_pwd" | unbuffer -p mysql_config_editor set --login-path=local --host=localhost --user=username --password 
+0

はい、動作しません。私は試みた他の方法で質問を編集しています。 –

関連する問題