MySQL道普請便り
第57回 mysql_config_editorを試してみよう
MySQLアカウントのログインパスワードを,
今回は,mysql_
について紹介していきます。
mysql_ config_ editorを使ってみる
mysql_
はMySQL5..mylogin.
に,.mylogin.
というファイルにして置くことができます。
ドキュメントでは暗号化と表記されています。しかし,.mylogin.
内に一緒に格納されており解読ができてしまうため,
余談ではありますが,mysql_
と似た名前のコマンドにmysql_
がありますが,
難読化して登録する
それではさっそくmysql_
を使って接続情報を難読化してみましょう。登録するにはset
コマンドを使って登録を行います。--login-path
オプションで,mysql_
で管理をする時の名前を指定しています。このオプションのデフォルト値はclient
です。--host
オプションで接続するホストを指定しています。--user
オプションで接続の際に使用するユーザー名を指定しています。--password
オプションを付けることで保存するパスワードを入力するダイアログを出します。
この他にも,--socket
オプションや,--port
オプションなどがあります。ただし,--socket
オプションや--port
オプションは5.
$ mysql_config_editor set --login-path=local --host=localhost --user=root --password
Enter password: #パスワードを入力する
$
以上のようにコマンドを実行すると,.mylogin.
ファイルが作成されていることがわかります。
$ cat .mylogin.cnf �uFb�������Q��_�IC)tش��A�� �����Մ�+�ԝs� �j��,L]q��F`a{jn>�S|��|Ņ�qh� $
このようにcatを使って.mylogin.
ファイルの中身を表示してみようとしてみても,
Windowsでは,.mylogin.
ファイルが作成されていることがわかります。
難読化した情報を確認する
ここでは登録された情報を確認してみましょう。以下のようにprintコマンドを使うと,--all
オプションを使うと登録されている接続情報を確認することができます。
$ mysql_config_editor print --all [client] user = root password = ***** host = localhost [local] user = root password = ***** host = localhost $
また,--login-path
オプションを指定することで個別に表示することもできます。
$ mysql_config_editor print --login-path=local [local] user = root password = ***** host = localhost $
接続する
次に,--login-path
で接続したいログインパスを設定します。
$ mysql --login-path=local Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.7.19-log Homebrew Copyright (c) 2000, 2017, 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>
接続情報を削除する
登録した情報を消したい場合は,remove
コマンドもしくはreset
コマンドを使います。
remove
コマンドを使う場合は,--login-path
と消したい情報をオプションとして付与します。以下では--host
オプションを使っています。--login-path
を設定しなかった場合はデフォルトのclientの情報を削除します。
$ mysql_config_editor print --login-path=local [local] user = root password = ***** host = localhost #host情報があります。 $ mysql_config_editor remove --login-path=local --host $ mysql_config_editor print --login-path=local [local] user = root password = ***** #host情報が削除されてなくなっています。 $
続いて--reset
オプションですが,
$ mysql_config_editor print --all [client] user = root password = ***** [local] user = root password = ***** host = localhost
上記のように2件の登録があった場合,
$ mysql_config_editor reset $ mysql_config_editor print --all $
5. 6以前のMySQLで同様のことがしたい場合
mysql_
が使える環境ではないけれども,
そういった場合には,my.
ファイルにパスワードを書いておくことで認証を楽にできます。
$ cat .my.cnf
[client]
password="パスワード"
こちらを利用すると以下のようにログインすることができます。
$ mysql -uroot
また,my.
ファイルにパスワードを書いておくと,cat
コマンドなどで確認した時に,
まとめ
mysql_
で設定したキーがあれば,
しかし,mysql_
で生成された.mylogin.
ファイルに入っているパスワードは難読化はされているものの,
バックナンバー
MySQL道普請便り
- 第138回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その1]
- 第137回 MySQLTunerを使ってチューニングの足がかりを見つけてみる
- 第136回 CHECK制約を利用してみよう
- 第135回 MySQL 8.0で追加されたoptimizer_switchのフラグについて
- 第134回 DDLと暗黙的なコミットについて
- 第133回 Partial Revokesによる権限の一部剥奪について
- 第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2]
- 第131回 mysqldumpslowを使ってスロークエリログを解析してみる
- 第130回 クエリをプロファイリングしてみる
- 第129回 Internal Temporary Table(内部テンポラリテーブル)について[その1]
関連記事
- 第46回 MySQL Cluster 8.0.16 DMRリリースと開発者来日セミナー開催,PostgreSQLエンタープライズ・コンソーシアムが検証成果を公開
- 第45回 OSSコンソーシアム 第3回データベース比較セミナー開催,MySQL 8.0.16でのCHECK制約追加,PostgreSQL関連ニュース
- 第38回 LOCONDO.jpやLINEでのMySQL最新導入事例,PostgreSQL 11ベータ4リリース,Cassandra(イベント情報のみ)
- 第37回 MySQL Server 8.0.12リリース,PostgreSQL 11ベータ3リリース
- 第36回 MySQL 8.0へのバージョンアップ方法,PostgreSQL 11ベータ2リリース,MongoDB 4.0 リリース