CentOS7にMySQL5.7をインストールする方法

Pocket

今回はCentOS 7上にMySQLをインストールする方法を紹介します。MySQLは公式でyumレポジトリが公開されていますでyumでのインストール方法と基本的な設定方法を説明します。

この記事の環境

OS、ミドルウェア バージョン等
CentOS 7.2
MySQL Community 5.7
MySQLデータディレクトリ /data/mysql

インストールおよび初期設定

インストール

まずはMySQLのyumレポジトリをインストールします。MySQLのページからyumレポジトリのRPMファイルのURLを取得してインストールを行います。。
yumレポジトリのRPMファイルのURLは以下の方法で取得できます。

  1. MySQLのページ上部にあるダウンロードリンクをクリックします。

    MySQL :: トップページ

  2. ダウンロードページ上部にあるYum Repositoryのリンクをクリックします。

    MySQL :: MySQL Downloads

  3. MySQL公式サイト(英語)のYum Repositoryダウンロードページへ遷移しますので、画面中部にある環境に合ったバージョン(今回はRed Hat Enterprise Linux 7 / Oracle Linux 7)のDownloadボタンをクリックします。

    MySQL :: Download MySQL Yum Repository

  4. ログインまたはサインインを求められますが、必要がなければ下部にある「No thanks, just start my download.」というリンクのURLをコピーします。

    MySQL :: Begin Your Download - mysql57-community-release-el7-9.noarch.rpm

コピーしたURLを使用してyumレポジトリをインストールします。

yumレポジトリがインストールできたらMySQL本体のインストールを行います。
今回はライセンスの問題が少ないCommunityバージョンでインストールを行います。他のバージョンでも同様の手順でインストールは可能です。

以上でMySQL Community ServerおよびMySQL Community Client のインストールは終了です。

MySQLのデータディレクトリの変更

MySQLのデータベースの保存領域であるデータディレクトリを作成します。保存したい領域にディレクトリを作成し、デフォルトの領域(/var/lib/mysql)にシンボリックリンクを作成するだけの作業になります。

MySQLの初期設定

MySQLの初期設定を行う前に、スーパーユーザーのパスワードを確認する必要があります。MySQLでは初回起動時にスーパーユーザーのパスワードがランダムで生成されるようになっています。まずはそのパスワードを確認する必要があります。
パスワードは/var/log/mysqld.logに記載されますので、mysqldを起動してログファイルを確認します。

A temporary password is generated for root@localhost:という部分にパスワードが記載されています。
パスワードが確認できたら、そのパスワードを忘れないように保存しておき、初期化用のコマンドを実行します。

mysql_secure_installationコマンドを実行すると対話式でいくつかの質問と入力を聞かれます。

  1. コマンドを実行後パスワードを聞かれますので、先程ログで確認したパスワードを入力します。
  2. rootユーザーのパスワード変更を行うかどうか確認されますので、[y]を入力します。
  3. 新しいパスワードおよび確認用のパスワードを入力します。英数字記号の含まれた複雑なパスワードでないとエラーとなります。
  4. anonymousユーザーの削除するか確認されますので、[y]を入力します。
  5. rootユーザーへのリモートログインを禁止するか確認されますので、[y]を入力します。
  6. testデータベースを削除するか確認されますので、[y]を入力します。
  7. 今すぐprivilegeテーブルを再読込するか確認されますので、[y]を入力します。

次に設定ファイルを変更し、データベースの文字コードをUTF-8に変更します。
設定ファイルは/etc/my.confにあります。

ユーザー設定

データベースを操作するユーザーを作成します。rootユーザーはスーパーユーザーであり、このユーザーでも操作することについて何の問題もありませんが、逆に何でもできてしまうため誤ってデータやデータベースを削除してしまったり、悪意のあるユーザーに乗っ取られた場合には被害が大きくなってしまいます。よって、スーパーユーザーよりも権限の低いユーザーを使用して操作を行います。

データベースの作成およびユーザーの所有権の紐付け

データベースの初期化と、ユーザーの作成ができたらデータベースを作成します。

データベースの作成

useを使用することで、データベースを切り替えることができます。

データベースとユーザーの紐付け

データベースが作成できたら、先程作成したユーザーにこのデータベースの操作権限を与えます。今回与える権限は、先程作成したデータベースに対しての全権限を与えます。

アクセス制限

外部接続制限

ユーザーの作成時およびデータベースとのヒモ付を行う際に、@以降をプライベートIPアドレスにすることで、外部からの接続を許可することができます。
JavaやPHPなどからデータベースへ接続する際にもこの設定がされていないと接続できない場合があります。

作成したユーザーでデータベースを操作する

以上の操作を行うことで、データベースとユーザーの組み合わせで操作することができるようになります。

データベース名 sample_db
ユーザー名 sample
テーブル名 tbl_sample

以下のようなテーブル(sample)を作成します。

カラム名 制約
id integer primary key, not null
name text not null
job text

以上で、CentOS 7上にMySQL 5.7のインストールおよび初期設定は完了です。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です