mysqlにコマンドで接続時にパスワードを書かない


MySQL5.6あたりから、mysqlコマンドにパスワードを書くと、warningメッセージが表示されるようになった。

$ mysql -uadmin -padpass
Warning: Using a password on the command line interface can be insecure.

パスワードを書くとhistoryにも表示されて他の人に見られちゃうかもなので、よくないよってことですね。

対策

パスワードを記述したファイルを作成して、コマンド実行時に指定すればOK。

$ mysql --defaults-extra-file=./extra.cnf -uadmin

extra.cnfの中身はこんな感じ。

[client]
password="adpass"

ファイルに対して、適切なパーミッションを付与すればパスワードが見られることがなくなる。

注意点

–defaults-extra-fileの順番が実は大事。一番最初に書かないとエラーになる。
この例は、–defaults-extra-fileの前に-uが書かれているから。

$ mysql -uadmin --defaults-extra-file=./extra.cnf
mysql: unknown variable 'defaults-extra-file=./extra.cnf'

最初に書かないとアウト。

$ mysql --defaults-extra-file=./extra.cnf -uadmin 
  • このエントリーをはてなブックマークに追加