クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
AWS

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

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

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

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

RDS の構築は以下で書いているので興味があれば参照してください。

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

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

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

$ yum search mysql | grep 'mysql57'

mysql57.x86_64 : MySQL client programs and shared libraries

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

$ yum -y install mysql57

MySQLクライアントの設定

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

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

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

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

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

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

$ vi /etc/my.cnf

[mysql]
default-character-set=utf8mb4

認証ファイルの作成

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

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

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

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

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

$ vi /etc/.my.cnf

[client]
user = [ユーザID]
password = [パスワード]
host = [ホスト名]

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

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

$ chmod 600 /etc/.my.cnf

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

$ mysql --defaults-extra-file=/etc/.my.cnf [データベース名]

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

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

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

エイリアスの作成

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

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

$ vi /root/.bashrc

alias mdb='mysql --defaults-extra-file=/etc/.my.cnf [データベース名]'

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

$ source /root/.bashrc

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

$ mdb

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 520
Server version: 5.7.21-log MySQL Community Server (GPL)

mysql>

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

mysql> status

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

Server version:         5.7.21-log MySQL Community Server (GPL)
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4

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

Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/20 11:58:13時点 Amazon調べ-詳細)

あなたにオススメ