概要
MySQLのDBダンプのスクリプトなどパスワードをベタ書きしている場合があります。
例えば
mysqldump -u dbdump --password=dbdump testdb (オプション略)
こんな感じでパスワードを書いてしまっています。
そこでmysql_config_editor
(MySQL5.6以上)を使ってパスワードをベタ書きしないようにする方法がありましたのでそのメモです。
ユーザ作成
LinuxユーザとMySQLユーザを両方作っておきます。
ここではMySQLダンプを想定しているのでユーザ名は『dbdump』にします。
設定
dbdumpユーザにスイッチします。
スイッチ後、以下コマンドで設定出来ます。
パスワードを聞かれますのでMySQLのdbdumpユーザのパスワードを入力します。
[root@test ~]# su - dbdump [dbdump@test ~]$ mysql_config_editor set -login-path=dbdump --user=dbdump --password Enter password:
当然ですがMySQLにdbdumpユーザが存在しないとエラーになります。
.mylogin.cnf
こういったファイルが作成されます。
中身は難読化されています。
Ѿ1?^?Jw00?cT z!1yz????????x???!s?q#`?˫_?T? ٌ?ecO?r?H?8/r-??'?ӳ?K????A?s
難読化されていることが分かります。
mysql_config_editor設定前
$ mysql -u dbdump ERROR 1045 (28000): Access denied for user 'dbdump'@'localhost' (using password: NO)
mysql_config_editor設定前はパスワードの-p
オプションを付けないとエラーになります。
mysql_config_editor設定後
$ mysql -u dbdump Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20 Server version: 5.6.23 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
mysql_config_editor設定後はパスワードの-p
オプションを付けなくてもログイン可能です。
またダンプスクリプトにも--password=
こういったパスワードオプションの記述も不要になります。