STUDY WITH ME / Reskilling

セキュリティでは、ゼロトラスト/マイクロセグメンテーション について情報を収集しています。 企業の活動では脱炭素経営について情報を収集しています。 インフラ設計・構築、ハードウェア選定から、アプリ、Javaチューニング、使えるDX、などITコンサルティング業務を会社員として従事しています。   また、脳内から零れ落ちているナレッジ(確認の意味で検索、ど忘れして検索、脳内のバージョンアップ、最新情報へのアップデート)をまとめています。(主に、運用系ツール、開発Java, C++, C#, Python, Swift など)

MariaDB コマンドでパスワードを安全に設定する方法

Table of contents
MariaDB 10.1.20以降
💬 Answer

MariaDB(MySQLでも同様)でパスワードをコマンドラインから渡す方法の一つは -p オプションを使う方法です。このオプションを指定すると、MariaDBはパスワードの入力を求めます。

しかし、これはインタラクティブな方法であり、スクリプト等からは使いづらいかもしれません。

そのため、MariaDB 10.1.20以降ではパスワードを ~/.my.cnf ファイルに保存し、このファイルからパスワードを読み込む方法が推奨されています。

この方法を使うとパスワードがコマンドラインやスクリプトに露出することなく、安全にパスワードを渡すことができます。

まず ~/.my.cnf ファイルをエディタで開き、以下の内容を追加します:

[client]
user = yourusername
password = yourpassword

ここで、 yourusername yourpassword をあなたのユーザ名とパスワードに置き換えます。

このファイルのパーミッションを変更して、他のユーザから読まれないようにします:

chmod 600 ~/.my.cnf

これで設定は完了です。次に mysql コマンドを実行するときは -p オプションなしで実行することができます:

mysql

また、これをワンライナーの例に適用すると、以下のようになります:

mysql -e "USE your_database; LOAD DATA INFILE '/path/to/your/file.tsv' INTO TABLE your_table FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (your_column1, your_column2, your_column3, ...);"

この方法を使えば、パスワードをコマンドラインやスクリプトに露出させずにMariaDBにパスワードを渡すことができます。

0