まず、スクリプトに平文で書いていたり、
コマンドラインで -p<password>
の様にオプションを記載してMySQLへログインすると、
以下の様に叱られますね。
[Warning] Using a password on the command line interface can be insecure.
平文で書かずに暗号化しておく方法もありますが、今回は、
パスワード情報を他のファイルに置いて、
スクリプト上では それを参照する様に記載する方法を紹介します。
以下の記事を参考にさせていただきました。
MySQL - コマンドラインでパスワード指定した場合の警告出力を抑止!
- 3. 方法・その2
- 設定ファイルを使用する方法。
とりあえず、以下の要領で別ファイルを作成したんです。
[client]
user = user_name
password = password
上記内容を下記構成ファイルへ記載。
bitnami@ip-xxx:~$ sudo vi /etc/myfeeder.cnf
bitnami@ip-xxx:~$ sudo chmod 600 /etc/myfeeder.cnf
しかし、敢え無く失敗。
bitnami@ip-xxx:~$ sudo mysql --defaults-extra-file=/etc/myfeeder.cnf feeder
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
これは、socketに関する設定が不適と理解。以下の様に対処しました。
Lightsail環境のMySQLで利用されていると思われる
/opt/bitnami/mysql/my.cnf
にある内容もそのまま /etc/myfeeder.cnf
へ持ってこよう。
その上で上記内容〔ユーザー名、パスワード〕を該当セクションへ追記してあげよう。
(なお、末尾の !include /opt/bitnami/mysql/bitnami/my.cnf は除きました。)
これにより、該当Warningを回避できる様になりました。
bitnami@ip-xxx:~$ sudo mysql --defaults-extra-file=/etc/myfeeder.cnf feeder
Reading table information for completion of table and column names
: