MariaDBデータベースサーバーのインストール、セキュリティ保護、パフォーマンスチューニングの方法


データベースサーバーは、今日のアプリケーションに必要なネットワークインフラストラクチャの重要なコンポーネントです。 (必要に応じて)データを保存、取得、更新、および削除する機能がないと、Webアプリとデスクトップアプリの有用性と範囲は非常に制限されます。

さらに、データベースサーバーをインストール、管理、および構成する方法(期待どおりに動作するようにする)を知ることは、すべてのシステム管理者が持つ必要のある重要なスキルです。

この記事では、MariaDBデータベースサーバーをインストールして保護する方法を簡単に確認してから、その構成方法について説明します。

MariaDBサーバーのインストールと保護

CentOS 7.xでは、MariaDBがMySQLに取って代わりました。MySQLはまだUbuntuにあります(MariaDBと共に)。同じことがopenSUSEにも当てはまります。

簡潔にするために、このチュートリアルではMariaDBのみを使用しますが、名前と開発哲学が異なることに加えて、両方のリレーショナルデータベース管理システム(略してRDBMS)はほぼ同じであることに注意してください。

これは、クライアント側のコマンドがMySQLとMariaDBの両方で同じであり、構成ファイルに名前が付けられ、同じ場所に配置されていることを意味します。

MariaDBをインストールするには、次のようにします。

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# yum update && yum install mariadb mariadb-server # CentOS 

--------------- On Debian and Ubuntu --------------- 
$ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server 

--------------- On openSUSE --------------- 
# zypper update && zypper install mariadb mariadb-tools # openSUSE

Ubuntuでは、RDBMSrootユーザーのパスワードを入力するように求められることに注意してください。

上記のパッケージをインストールしたら、データベースサービスが実行され、起動時に起動するようにアクティブ化されていることを確認します(CentOSおよびopenSUSEでは、この操作を手動で実行する必要がありますが、Ubuntuではインストールプロセスですでに処理されています。あなたのために):

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# systemctl start mariadb && systemctl enable mariadb 

--------------- On openSUSE --------------- 
# systemctl start mysql && systemctl enable mysql

次に、 mysql_secure_installation スクリプトを実行します。このプロセスにより、次のことが可能になります。

  1. set / reset the password for the RDBMS root user
  2. remove anonymous logins (thus enabling only users with a valid account to log in to the RDBMS)
  3. disable root access for machines other than localhost
  4. remove the test database (which anyone can access)
  5. activate the changes associated with 1 through 4.

このプロセスの詳細については、RHEL/CentOS/FedoraおよびDebian/UbuntuでのMariaDBデータベースのインストールのインストール後のセクションを参照してください。

MariaDBサーバーの構成

デフォルトの構成オプションは、次のファイルから指定された順序で読み取られます: /etc/mysql/my.cnf /etc/my.cnf 、および〜 /.my.cnf

ほとんどの場合、 /etc/my.cnf のみが存在します。サーバー全体の設定を設定するのはこのファイルです(各ユーザーの〜/ .my.cnf の同じ設定で上書きできます)。

my.cnf について最初に注意する必要があるのは、設定がカテゴリ(またはグループ)に編成されており、各カテゴリ名が角かっこで囲まれていることです。

サーバーシステムの構成は、 [mysqld] セクションに記載されています。通常、以下の表には最初の2つの設定のみが表示されます。残りは他の頻繁に使用されるオプションです(示されている場合は、選択したカスタム値でデフォルト値を変更します):

これを変更して、メインアドレス(192.168.0.13)でのみリッスンするようにサービスに指示します。

ポートu003d 20500

デフォルト値を256MBに置き換えます。

権限を決定するためにホスト名が必要な場合を除いて、値を1に設定して、この変数を無効にすることをお勧めします(接続とクエリを高速化するため)。

1)繰り返しクエリの数、および2)繰り返しクエリが返すと予想されるレコードのおおよその数に基づいて、ニーズに一致するクエリキャッシュサイズを選択する必要があります。当面は、この値を100MBに設定します。

繰り返しますが、これは予想される接続の数によって異なります。この値をmax_connectionsの半分の数に安全に設定できます。

# yum install policycoreutils-python
# semanage port -a -t mysqld_port_t -p tcp 20500

次に、MariaDBサービスを再起動します。

MariaDBパフォーマンスのチューニング

特定のニーズに応じて構成を確認および調整するのに役立つように、mysqltuner(データベースサーバーのパフォーマンスを向上させ、その安定性を高めるための提案を提供するスクリプト)をインストールできます。

# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xzf master

次に、ディレクトリをtarballから抽出したフォルダに変更します(正確なバージョンは場合によって異なる場合があります)。

# cd major-MySQLTuner-perl-7dabf27

それを実行します(管理用MariaDBアカウントの資格情報を入力するように求められます)

# ./mysqltuner.pl

スクリプトの出力自体は非常に興味深いものですが、調整する変数が推奨値とともにリストされている下部にスキップしましょう。

query_cache_type 設定は、クエリキャッシュが無効(0)か有効(1)かを示します。この場合、mysqltunerはそれを無効にするようにアドバイスしています。

では、なぜ今それを非アクティブ化するようにアドバイスされているのでしょうか?その理由は、クエリキャッシュは主に高読み取り/低書き込みのシナリオで役立つためです(データベースサーバーをインストールしたばかりなので、これは私たちの場合ではありません)。

警告:実稼働サーバーの構成を変更する前に、専門のデータベース管理者に相談して、mysqltunerによって提供された推奨事項が既存の設定に悪影響を与えないことを確認することを強くお勧めします。

概要

この記事では、MariaDBデータベースサーバーをインストールして保護した後で構成する方法について説明しました。上記の表にリストされている構成変数は、サーバーを使用する準備をするとき、または後でサーバーを調整するときに考慮することができるいくつかの設定にすぎません。変更を加える前に、必ず公式のMariaDBドキュメントを参照するか、MariaDBパフォーマンスチューニングのヒントを参照してください。

いつものように、この記事について質問やコメントがあれば、遠慮なくお知らせください。他に使用したいサーバー設定はありますか?以下のコメントフォームを使用して、コミュニティの他のメンバーと自由に共有してください。