AWS

AmazonLinuxにMySQLクライアントをインストールする

AWS でデータベースを使う際、MySQL サーバを立てるよりも RDS(MySQL)を使う方が楽です。

ただし、データベースのメンテナンスには MySQL クライアントがあると便利なので、EC2 で実行できるようにしておきます。

RDS は MySQL5.7 ベースのエンジンで構築しているので、クライアントもそれにあわせて設定したいと思います。

RDS の構築は「AWSでパラメータグループを設定してからRDS(MySQL5.7)のインスタンス作成をする」で書いているので興味があれば参照してください。

AWSでパラメータグループを設定してからRDS(MySQL5.7)のインスタンス作成をするRDS のインスタンスを作成する際、いきなりデータベースを構築すると後々パラメータグループを変更する手間が発生します。 それは、デフォル...

MySQLクライアントのインストール

MySQL のパッケージはバージョン別にいくつかあるので、5.7 を指定してインストールを進めます。

MySQL5.7 用のパッケージをインストールします。

MySQLクライアントの設定

クライアント側で設定することはそれほどないですが、以下の 2 つを設定しておくと運用が楽です。

また、バッチを実行する際にも活用できます。

  • クライアントの文字コードの設定
  • 認証ファイルの作成
  • エイリアスの作成

クライアントの文字コードの設定

MySQL のクライアントの文字コードをサーバと同じく utf8mb4 にしておきます。

my.cnf のファイルに以下を追記すれば問題ありません。

認証ファイルの作成

MySQL5.6 から mysql コマンドの -p オプションにパスワードを指定することが推奨されなくなりました。

これは昔から history にそのまま残ってしまう問題があり、ターミナルで直接コマンド入力をすることはタブーでしたが、バッチ処理などでは使っていた方式です。

現在は警告が表示されるので、外部ファイルで代用します。警告メッセージはこんな感じ。

mysql: [Warning] Using a password on the command line interface can be insecure.

以下のような、データベースへの接続設定を書いたファイルを作成します。

ファイルのパーミッションも厳密にしておきましょう。

例えば、root ユーザのみ参照する場合は以下の通りです。

これで、mysql コマンドから認証ファイルを指定してログインすることができます。

セキュリティグループの設定

接続待ち状態が続きログインができない場合は、RDS のセキュリティグループの設定が正しくない可能性があります。

RDS 設定時に VPC 内のアクセスが有効になっていない場合はセキュリティグループの設定を調整しておきましょう。

f:id:chatoracat:20181026175245j:plain

エイリアスの作成

認証ファイルを指定してログインするのもいいですが、エイリアスを作成しておくともっと楽になります。

マスタのデータベースという意味で「mdb」というエイリアスコマンドを設定してみます。

作成したら、再度シェルにログインするか source コマンドで読み込ませます。

以降は mdb というコマンドでデータベースに接続できるようになります。

MySQL の状態を確認しておきます。

以上で MySQL クライアントの設定は完了です。