データベース MariaDB 10系(mysql)をインストール、最短でデータベースを利用する。


前回の記事「CentOS 7のウェブサーバーにphp 7.2を導入する。phpの入門にも最適な環境の構築」までウェブサーバーであるhttpdとアプリケーションサーバーであるphpのインストールが完了しましたので、作成した環境にデータベースとしてあるMariaDB(以前ならMySQL)をインストールする手順を紹介していきます。
MariaDB(マリアディービー)とは、オープンソースの代表的なデータベースであるMySQLから派生した同じくオープンソースリレーショナルデータベースシステム(RDBMS)です。ここ最近の主なLinuxディストリビューションで採用されています。
そんなMariaDBですが、CentOSのベースレポジトリではMariaDBは5.5系の古いバージョンしか用意されていません。現在リリースされているものは10系になりますので、10系の最新バージョンである10.2をインストールしていきます。

スポンサーリンク

データベースまで導入が完了すると、ウェブサイトの構築には欠かせないCMSであるwordpressやECサイトを作成するためのCMSであるEC-CUBEなどが利用できる基本的な環境が完成します。それではMariaDBの導入方法を紹介します。

1.MariaDBを導入する環境

MariaDBを導入する環境はPHPの導入手順を紹介した記事「CentOS 7のウェブサーバーにphp 7.2を導入する。phpの入門にも最適な環境の構築」で紹介していますが、確認の意味で再度、纏めておきます。基本的な環境は以下の通りです。

  • OSのバージョンはCentOSで最新(2018年5月現在)のバージョン7.5を利用しています。
  • ウェブサーバーとしてApache2.4.6がインストールされています。
  • Apacheは基本的な設定が完了して、テストページが表示されています。
  • ApacheはHTTPS通信に対応した設定が完了しています。
  • PHP 7.2系をインストールしており、テストページまで表示されています。
  • サーバーはインターネットへ接続されており、グローバルIPアドレスが一つ、割り当てられています。
  • ファイアウォールとしてfirewalldを設定しています。

この環境を前提にMariaDBの導入と設定を進めていきます。

2.MariaDBインストール前の事前準備

MariaDB10系のインストール前に事前準備を行います。作業としては導入する環境にOSデフォルトのMariaDBがインストールされていないかを確認することと、MariaDB10系をインストールするのに必要なレポジトリの追加の二つになります。

2-1.MariaDBバージョン5系のインストール確認

MariaDBの10系をインストールする前の確認事項としてOSのベースレポジトリに含まれるMariaDB5系がインストールされていないことを確認します。MariaDB5系がインストールされていると、設定ファイルやモジュールの読み込み時にコンフリクト(衝突)する可能性があります。以下のコマンドでMariaDB5系がインストールされていないことを確認します。

上記の結果からmariadb-libsの5.5がインストールされていることが確認できました。10系をインストールする前にこのパッケージを削除します。インストール済みのパッケージを削除するにはyumコマンドにremoveオプションを付与して実行します。
以下のようにパッケージの削除を実行しました。

以下が実行結果になります。

エラーの出力がなく”完了しました!”と表示されれば、mariadb-libsは正常に削除されています。確認のためにインストールされているパッケージを表示するコマンドで確認します。

実行結果として何も表示されなければ、確認は完了です。

2-2.MariaDB専用レポジトリの設定

OSデフォルトではMariaDBの10系に関するパッケージを探してみても見つかりません。試しにyumコマンドでMariaDBのパッケージリストを確認してみます。

上記のレポジトリファイルが存在します。ここにMariaDB専用のレポジトリファイルを追加します。

2-2-1.MariaDB用レポジトリファイルの作成

「MariaDB公式ウェブサイト」に用意されているOS毎のレポジトリファイル作成画面にブラウザでアクセスします。
(MariaDB公式ウェブサイトURL)
https://downloads.mariadb.org/mariadb/repositories/#mirror=yamagata-university
以下の画面が開きます。
centos-mariadb-install-2-2-1-1
この画面から、本環境に合わせて以下の選択を行い、レポジトリファイルの内容を表示させます。

  • Choose a Distroから、”CentOS”をクリックします。
  • Choose a Releaseから”CentOS 7 (x86_64)をクリックします。
  • Choose a Versionから”10.2 [Stable]”をクリックします。

centos-mariadb-install-2-2-1-2
項目を選択すると、画面にレポジトリファイルの内容が表示されますので、この内容をメモ帳などにコピーします。
次に、viコマンドでレポジトリ用のファイルであるmariadb.repoファイルを作成します。

ファイルの内容はウェブサイトからコピーしてきたものを貼り付けます。ここでは以下のような内容になります。最下行のenable=1はウェブサイトの内容には含まれません。ここではレポジトリを有効にするために指定しています。

貼り付け終わったらファイル保存します。これでMariaDB用レポジトリファイルの追加は完了です。

2-2-2.MariaDB用レポジトリの追加の確認

レポジトリを追加した後で、10系のMariaDBを確認してみます。レポジトリはenable=1で有効になっていますので、指定なしでyumコマンドを実行します。レポジトリ名が”MariaDB”になりますので、これを含んだパッケージを探してみます。以下のように実行します。

実行結果は以下の通りです。

MariaDBとして10系のパッケージが表示されたことが確認できました。この中で必要になるものは以下のパッケージになります。

  • MariaDB-server.x86_64 : MariaDB: a very fast and robust SQL database server
  • MariaDB-client.x86_64 : MariaDB: a very fast and robust SQL database server
  • MariaDB-devel.x86_64 : MariaDB: a very fast and robust SQL database server

上記のMariaDBパッケージをインストール対象とします。

3.mariaDBのインストール

本章では実際にMariaDBの10系パッケージをインストールする手順を紹介していきます。特に難しい部分はありませんので、ゆっくりと落ち着いて作業して頂ければ大丈夫です。

3-1.MariaDBパッケージの情報確認

MariaDBに関するパッケージのインストール前に、パッケージの情報を確認しておきます。実行結果は以下の通りです。各パッケージの役割などを確認しておくと、インストールするパッケージの意味合いをイメージしやすいと思います。

※実際には5.5系のパッケージも表示されますが、ここでは割愛しています。
各パッケージの詳細を確認後、インストールに入ります。

3-2.MariaDBのインストール

MariaDBパッケージはyumコマンドにinstallオプションを付けることでインストールすることができます。項目3-1.で必要なパッケージの情報が確認できましたので、以下のコマンドでインストールします。

上記ではyumコマンドに-yオプションを付けることでインストール時の確認応答を省いています。パッケージを複数インストールする場合はスペースを入れてパッケージ名を列記します。コマンドを実行すると、以下のようにインストールが開始されます。

エラーの出力がなく”完了しました!”と表示されれば、MariaDBのインストール完了しています。

3-3.インストールされたMariaDBパッケージの確認

MariaDBパッケージがインストールされたことを確認します。インストールされているパッケージはyumコマンドで確認できます。以下のようにyumに”list installed”オプションを付与して実行することで、インストール済みのMariaDBパッケージが表示されることを確認します。

出力結果としてMariaDBパッケージが表示されることを確認します。

上記のように10.2系のMariaDBパッケージが表示されれば、確認は完了です。
続いてMariaDBのプログラム本体であるmysqldがインストールされた場所を確認します。インストールされた場所(パス)を確認するためにはwhichコマンドを利用します。以下のように実行することでインストールパスを確認できます。

実行結果は以下のようになります。

この結果から、mysqldが/sbin以下にインストールされたことが確認できます。これでMariaDBのインストールが正常に終了したことが確認できました。

スポンサーリンク

3-4.MariaDB起動の確認

ここまででMariaDBのインストールと確認が完了しましたので、続いてインストールしたMariaDBが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。MariaDBは以下のように実行することで起動できます。

エラーが出力されなければ、MariaDBは正常に起動しています。
systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。以下が実行例です。

上記では分かり難いかもしれませんが、黒丸(●)の部分が正常な起動状態の場合、緑色で表示されます。また、稼働しているプロセスを表示するpsコマンドでもMariaDBの本体であるmysqldが起動していることを確認できます。
以下のように実行します。

以上の結果から、MariaDBが正常に起動することが確認できました。

3-5.MariaDB自動起動の設定

サーバーの再起動や停止の復旧時に、MariaDBが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。

エラーが出力されなければ、自動起動の設定は正常に完了しています。
続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。is-enabledオプションを付与して実行します。

enabledと表示されれば自動起動は設定されています。これで自動起動の確認は完了です。

4.mysql_secure_installationの実行

MariaDBでは基本的なセキュリティを確保するためにmysql_secure_installationコマンドが用意されています。このコマンドを実行することで、インストール後のセキュリティホールになりやすい部分(DB管理者のパスワード設定や、サンプルデータベースの削除など)を修正してくれます。できる限りインストール直後に実行することをお勧めします。

4-1.mysql_secure_installationの実行

mysql_secure_installationはオプションを付けずに実行します。

実行すると、以下のように設定ウィザードが起動します。設定ウィザードの項目を見ていきます。

一つ目の設定はデータベースの管理者(root、linuxに設定されているrootとは異なる)にパスワードが設定されている場合はパスワードを入力します。まだパスワードは設定していませんので、enterキーで次へ進めます。

ここでDBの管理者パスワードを設定します。設定後、先へ進めます。

DBに最初から作成されている匿名ユーザーを削除するかの質問です。匿名ユーザーが設定されていると、セキュリティホールになりますので、削除します。yを入力して先へ進めます。

リモート環境からDBの管理者ユーザーでログインを無効化するかの質問です。リモートからDBの管理者でログイン出来ることは余り好ましくないため、無効化します。yを入力します。

デフォルトで作成されているテスト用のデータベース、”test”を削除するかの確認です。testデータベースはセキュリティホールになりやすいため、削除を行います。yを入力します

test_から始まるデータベースへの接続権限の削除を行うかの確認です。不要な接続権限は削除したほうセキュリティ面では良いので、ここではyを入力して削除を行います。

上記のように”All done!”と表示されれば、mysql_secure_installationによるセキュリティ設定は完了です。

5.MariaDBの基本的な設定変更

項目3.の手順までで、MariaDBパッケージの導入とセキュリティ設定までが完了しました。この状態でも動作しますが、基本的な設定を行うことをお勧めします、本記事では運用するにあたって最低限、必要になる設定を行います。設定の前提は以下の通りです。

  • DB作成時のデフォルトの文字コードとしてUTF-8を設定

この条件に合わせて設定を行います。この設定を行わない場合、作成したデータベースの文字コードがlatin1になってしまい文字化けが発生する可能性があります。本設定を行わないときにデータベースを作成すると文字コードのパラメーターは以下のようになります。

※テスト用のデータベースを作成して、文字コードを確認しました。
上記の結果から、”character_set_database”設定値がlatin1になっていることが確認できます。基本的にはUTF-8を利用することで文字化けなどが発生しにくくなります。
文字コードは以下の手順で設定を行います。

5-1.server.cnfの変更

MariaDBの設定は/etc/my.cnf.d/以下にあるserver.cnfファイルで行います。server.cnfの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

設定ファイルを開いたら、[server]ディレクティブに”character-set-server=utf8”を追加します。追加後の設定ファイルは以下のようになります。

パラメーターの追記が完了したら、設定ファイルを保存します。これでserver.cnfファイルの変更は完了です。

6.server.cnf設定ファイルの反映とMariaDBの確認

ここまででMariaDBの基本的な設定は完了しました。変更した設定を反映するためにMariaDB(mysqld)を再起動します。systemctlを以下のように実行します。

エラーが出力されなければ、MariaDBは正常に再起動しています。
再起動後にMariaDBのstatusを確認します。

上記の出力結果から、MariaDBは正常に再起動していることが確認できました。

7.動作確認

項目6.まででMariaDBの設定が完了しましたので、ここからは実際にデータベースの作成と、設定した文字コードを確認していきます。
MariaDBの管理にはphpMyAdminなどのウェブで管理するツールを利用することが多いと思いますが、ここではコンソールからmysqlコマンドを利用して確認を行っていきます。

7-1.テスト用のデータベースの作成

テストとしてデータベースを作成してみます。MariaDBへの接続はmysqlコマンドを利用します。mysqlコマンドを以下のように実行します。

MariaDBに接続すると、以下のように応答があります。

”MariaDB [(none)]> ”のようにプロンプトが表示されますので、データベース作成用のSQL文である”create database”を入力します。ここではデータベースとして”test_db”という名前のデータベースを作成します。
※SQL文の最後には実行する意味合いの記号”;(セミコロン)”を付けます。セミコロンが付いていないとSQL文は実行されません。

上記のように”Query OK”と表示されれば、データベースは作成されています。

7-2.テスト用のデータベースの確認

次に作成されたデータベースを確認してみます。現在、作成されているデータベースを表示させるSQL文である”show databases”を入力します。

データベースの一覧に”test_db”が含まれていれば、正常にデータベースは作成されています。作成したデータベース以外のデータベースはデフォルトで作成されるものでMariaDBの管理に利用されます。

7-3.テスト用データベースの文字コード確認

作成したテスト用データベースの文字コードが項目5-1.で設定したUTF-8になっているかを確認します。先ずは作成したテスト用のデータベースに接続します。SQL文の”use”以下のように実行します。

接続しているデータベースが変更され、プロンプトが”none”から”test_db”に変更されました。
次に接続しているデータベースの文字コード設定を表示させるSQL文を実行します。

実行結果は以下のようになります。

上記から、設定前はlatin1だったパラメータがutf8に変わっていることが確認できました。これで文字コードの確認は完了です。

7-4.テスト用データベースの削除

テスト用データベースの文字コード確認まで完了しましたので、テスト用データベースを削除します。データベースを削除するためのSQL文である”drop database”を以下のように実行します。

データベースが削除されると、”Query OK”と応答があります。またtest_dbだったプロンプトが再度、noneへ戻ります。これでデータベースは削除されています。確認として”show databases”を実行してデータベースの一覧を表示させます。

先ほどの削除した”test_db”が表示されていませんので、削除されたことが確認できました。確認後は”quit”でMariaDBとの接続を解除します。

これで通常のシェルに戻ります。MariaDBの動作確認はこれで完了です。

8.まとめ

MariaDBの導入まで完了しました。Linux上でApacheとMariaDB(MySQL)、PHPが動作している環境をLAMPと呼びますが、本記事までで漸くLAMP環境が完成しました。MariaDBのインストールはレポジトリの追加が分かり難い部分だと思いますが、古いバージョンを利用するより、手間でもレポジトリを追加して、最新のバージョンを利用することをお勧めします。
今後は作成したLAMP環境にオープンソースの代表的なCMSである(このブログのCMSでもある)wordpressをインストールしていきます。自身で作成した環境はカスタイマイズも自由にできますので、是非、データベースまでインストールしてLAMP環境を構築してみて下さい。

システムでお困りのお客様

もし、貴社で、

  • サポート切れのサーバやネットワーク機器の入れ替えをしたいが、どうしたらよいかわからない
  • サーバやネットワークの管理を行う社員がいないため困っている
  • 業務に利用している機器のセキュリティが大丈夫か心配
  • 機器の障害で、業務への影響が発生している
  • 社内の要望に対して、どのようなシステムを導入したらよいか解らない

など、サーバーやネットワーク、セキュリティでお悩みの方、新規のシステム導入を検討中の方。
多くのシステム構築を行い、成功させてきた実績をもつ弊社が、その問題を解決します。
お気軽にお問い合わせ頂き、貴社の問題解決にお役立てください。

お問い合わせ・ご相談はこちらから

Facebookでのご購読が便利です。

Twitter・Feedlyでもご購読できます。

Twitterでフォローする Feedlyでフォローする

関連する情報

win2016-add-dc-top

Windows Server 2016でActive Directoryにドメインコントローラーを追加する。故障や障害に強い構成を作成

以前の記事「Windows Server 2016 で Active Directoryを習得す

win2008-sysprep-top

Windows Server 2008 R2で仮想マシンを初期化、sysprepの実行手順

仮想化環境(ここでは主にVMWare ESXiやマイクロソフトのHyper-Vなどのhyperv

httpd-mpm-php-fpm-top

WordPressの高速化に。ApacheのeventMPMとphp-fpmを利用してウェブサイトの速度を向上する。

以前の記事「CentOSのサーバーへWordPressをインストール。WordPressを理解す

HP-sas-key-install

HP Proliant DLシリーズのgen8にSAS License Keyを投入する

ここ最近のHPサーバを構築していて思うことは、手間がかかるということです。 何かとLicens

oss-bind

bind ゾーンファイル “already in use” エラーの対応方法

このところネームサービスとして代表的なアプリケーションである"bind"のセキュリティホールが多

centos-setting-top2

CentOS7の基本設定 Linuxのインストール後に設定する9つのポイント

CentOS7(ここでは7.0~7.5)のインストール完了後に、設定する最低限のポイントを10点

windows2012-settings-11

Windows Server 2012 R2を利用する前に始める11の作業

以前の記事「Windows Server 2012 R2をインストールする手順」でセットアップし

centos-wp-install-top

CentOSのサーバーへWordPressをインストール。WordPressを理解するにはインストールからがお勧め。

以前の記事「データベース MariaDB 10系(mysql)をインストール、最短でデータベース

ad-dsadd

CSVを利用してActive Directoryにユーザーを一括登録するコマンド

WindowsのActive Directoryに一括してユーザーを追加したい場合がありますよね

cron-time-setting

Linuxのcronを秒単位で設定・実行する方法

秒単位でcronを実行したいときって、思ったよりあるかと思います。先日、設定が必要になりましたの

Message

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

  • スポンサーリンク