5.7からか、mysqlはスクリプトからmysqlアクセスした時に、mysqlアクセスのためのパスワードをスクリプトに直接記載すると、以下のようなアラートが得るようになった。
mysql: [Warning] Using a password on the command line interface can be insecure.
これは、「コマンドラインにパスワードがあるのは、セキュリティ上よくない」と言う意味のようで、対策としては別ファイルに記載すればよい。
そのばあい、もともとパスワードを記載していたmysqlコマンドの行は以下のように変更する。
mysql -u user -h example.com -ppasswor#d ↓ mysql --defaults-extra-file=filepath ※上のfilepathでmysqlのアクセス情報を記載したファイルを指定する
ちなみに、mysqlのアクセス情報を記載したファイルは以下のようなないようにすれば良い。
[client] user = user password = passwor#d host = example.com
ただ、いくらやっても接続できずエラーになった。
原因を調べたら、パスワード内に「#」という文字を入れていたが、これがコメント扱いされたのか、認識されていなかったっぽいことがわかった。
パスワードの文字列を「”」で囲むと問題なくアクセスできるようになった。
password = “passwor#d”