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にパスワードを渡すことができます。