😸

MySQLにコマンドライン(CLI)でパスワードを入力する方法

2021/12/01に公開

概要

MySQL のオプションコマンドには以下のようなものがあります。

-u
ユーザ名指定

-p
パスワード指定

-D
データベース名指定

-h
ホスト名の値を指定

-e
コマンドラインから直接 sql を実行

DB サーバのヘルスチェックのために以下のコマンドを使おうと考えました。
CLI でパスワードを直書きするのは問題がありますが、開発環境なのと、環境変数のためセーフと想定しています。
もちろん、本番 DB を対象に使うときには NG。

しかし、以下のようにパスワードが求められてしまいます。

$ mysql -u root --port 3306 -h 127.0.0.1 -D phpunit_intro -p password -e 'SHOW tables;'
Enter password:

解決策

CLI で MySQL のコマンドを入力するときには、スペースが不要でした。
以下を実行すると、mysql: [Warning] Using a password on the command line interface can be insecure.が発生しました。
これは、CLI においてパスワードを入力すると安全じゃないと教えてくれます。

$ mysql -u root --port 3306 -h 127.0.0.1 -D phpunit_intro -ppassword -e 'SHOW tables;'
mysql: [Warning] Using a password on the command line interface can be insecure.

参考

https://qiita.com/yulily@github/items/54cb6ccaacf39977455c

Discussion