このmysql -e "{command}"
機能を使用するBASHツールがいくつかあります。これらのツールを使用するたびにパスワードを入力するのは手間がかかるため、パスワードがコードとともにプレーンテキストファイルに書き込まれないように、メモリに(を使用してread -s
)保存し、コマンドを実行するたびにBASHに読み取らせます。
Mysqlは、パスワードがコマンドライン経由で送信されていると判断し(言い方をすれば)、「コマンドラインインターフェイスでのパスワードの使用は安全ではない可能性があります」というエラーを表示します。
私の目的のために、このメッセージを抑制する必要はありません。私が知る必要があるのは、それが安全でない可能性があることです。パスワードは物理的に表示されることはないため、ショルダーサーフィンではできません。また、SSHパスワードを推測した人でも、スクリプト自体ではなくメモリに保存されているため、パスワードを実行できません。中間者攻撃などが可能ですか?
bash
コマンドを実行すると、どのように読みますか?そうすればmysql -p"$pass"
、誰でもそれを見ることができますps
。
~/.my.cnf
例行うことによって、あなたはホストごとに指定することができます[client<hostname>]
たとえば[clientlocalhost]
、それが簡単かつ安全であるように、自動的にそれを使用しますMySQLのツールを