ホンモノのエンジニアになりたい

ITやビジネス、テクノロジーの話を中心とした雑記ブログです。

MariaDBの設定テンプレファイルが見つからないの巻

設定ファイルを探している人魚

MariaDBのコンフィグテンプレファイルが見当たらなかったのであれこれ調べた内容を書き残しておく。

 

長くなったので結論だけ先に。

  • MariaDB v10.3.2以降には、それまで設定例として含まれていたmy-small.cnfなどのテンプレファイルは無くなった。
  • 基本はデフォルト値で導入して明確に実現したい要件があればconfファイルに書き込む。


 

インストールした日:2018/07/15
データベース製品 :MariaDB 10.3.8  database server(現在時点で最新)
インストール方法 :レポジトリを追加してyum

OS   :CentOS 7.4
稼働環境 :Oracle Virtual Box

 

事象(困ったところ)

インターネッツの情報を参考にMariaDBをインストール、それから初期セットアップのためにcnfファイル(config)の設定テンプレをコピーしようとしたら、テンプレファイルが見つからなかった。以下のようなテンプレファイルが/usr/share/mysql/ ディレクトリ配下に存在することを期待していたが無かった。

my-small.cnf
my-medium.cnf
my-large.cnf
my-huge.cnf
  

もう少し詳しくやった事を書いておく

最初は公式の情報からレポジトリを追加してyumで本体をインストール

MariaDB - Setting up MariaDB Repositories - MariaDB


次に /usr/share/mysql にあるmy-large.cnfファイルをコピーして/etc/my.cnf.dディレクトリにserver.cnfの名前で保存する。が /usr/share/mysql ディレクトリにmy-large.cnfが見当たらなかった。

$ ls -l /usr/share/mysql/ | grep cnf
-rw-r--r--. 1 root root 3479 72 18:31 wsrep.cnf


インストールに失敗したのかしら?設定の考え方が変わったのかしら?と思い悩みながら、とりあえず今のコンフィグの状態を見てみる。

$ cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

 

これはインターネッツの情報通り/etc/my.cnf.d配下のファイルをインクルードしておられる。/etc/my.cnf.d配下を見てみると、こうなっている。

$ ls -l /etc/my.cnf.d
合計 12
-rw-r--r--. 1 root root 763 72 16:34 enable_encryption.preset
-rw-r--r--. 1 root root 232 72 16:34 mysql-clients.cnf
-rw-r--r--. 1 root root 1080 72 16:34 server.cnf

 

インストール後のデフォルト状態のserver.cnfを見てみるとこう。

$ head /etc/my.cnf.d/server.cnf
#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

 

5行目: # See the examples of server my.cnf files in /usr/share/mysql/

/usr/share/mysql/ ディレクトリにあるサンプルを見ろ、と書いてある。


ネットで調べた初期設定手順では/usr/share/mysql/my-****.cnf をコピペしなはれと書いてあった。server.cnfには /usr/share/mysql ディレクトリを見てみろと書いてある。

でも/usr/share/mysqlディレクトリにはテンプレコンフィグファイルは見当たらない。

findコマンドで検索してもmy-****.cnfというファイルはシステム上に無い。

 

 

インストール時に変なパラメータを渡したわけでもなく、素直にインストールしたしエラーも無く完了していたはずなんだけどなぁ。

 

あるはずのファイルが無いってのはやっぱり何かがおかしい...でもMariaDB自体は普通に起動できている...configのテンプレファイルだけ欠落しているとは考えづらい。

 

ここで「まぁ動いてればいっか。ダメならダメで後から何か症状が出るっしょ」と考えられないのが、金融系SEとして調教された人間の考え方である。

 

調査

テンプレファイルが見当たらないというワードで調べたが、ぱっと見た感じ「同じ状態になってオラ困ったぞ」という情報も見当たらない。

やっぱりインストールの時に何かやらかしてたのかなぁと不安になったが、以下の情報を発見。

mariadb.com

上記リンクから引用します。

The following my.cnf example files were included with MariaDB until MariaDB 10.3.1. 

Google翻訳
次のmy.cnfサンプルファイルは、MariaDB 10.3.1までMariaDBに含まれていました。

 

今回インストールした最新版(v10.3.8)では含まれていないということか.....

 

さらに調べたらこんな情報も発見

https://git.launchpad.net/maria/commit/support-files?id=7fee164faf8fce7be4ebe322d2178efd3d075eae

  

このローンチパッドというサイトは公式からリンクされているページです。以下のMariaDB公式サイトの中段あたり「LaunchPadリポジトリ」から飛べます。GitHubとの住み分けがよくわからんけど、公式からリンクされているちゃんとしたソース管理システムです。

MariaDB はどこでダウンロードできるの? - MariaDB Knowledge Base

 

LaunchPadのページから引用

Remove dated my-{size}.cnf files

The dates on the these files shows they are very dated. Following the sentiments of MDEV-9882 the default values are quite decent so lets remove this old stuff.

Google翻訳
これらのファイルの日付は、日付が古いことを示しています。 MDEV-9882の感想に従えば、デフォルト値はまともですので、この古いものを取り除くことができます。

 

ここから更にもう1つ情報を発見。上記引用文中にあるMDEV-9882でググって出てきたページ。どういうサイトかはわからないけど、製品の不具合なんかを投稿するサイト?

[MDEV-9882] Lack of config defaults in 10.1.13 - Jira

 

コンフィグデフォルトファイルが無くなった!と登録された内容に対して、Sergei Golubchikという人(ググったところMariaDBのChief Architectという立場らしい。要は中の人)のコメントにこう書いてあった。

 

This is intentional. We set generally useful defaults in the server. Configuration files are for the end user to modify the defaults, not for us to set them.  

Google翻訳
これは意図的です。一般的に有用なデフォルトをサーバーに設定します。設定ファイルはエンドユーザがデフォルトを変更するためのものであり、私たちが設定するものではありません。

 

つまりちゃんとしたデフォルト値を設定しているから、基本はデフォルトで使って大丈夫よと、で変えたいところは変えてくれよと、そういうことなのねきっと。設定の考え方が変わったと。

 

MariaDBのセットアップ手順を紹介しているサイトのいくつかは、テンプレのcnfファイルコピーをせずに、キャラクタセットだけUTF8に変更しているものがあったが、あれが正解なのかもしれない。

 

よっぽどメモリ使用量を制御したいといった要件がなければ、デフォルト+文字コードくらいで運用を開始してもいいのかも。まぁ厳しい要件で環境構築することになっても結局はメモリの動きなんかはある程度動かしながら挙動を見ていくことになるので、いずれにしても最初はあまり細かいことは考えなくていいのではないかと思われる。  

 

ちなみにではあるが、実は途中で調べるのが面倒になり、過去のバージョンであるv.10.2系をインストールしてコンフィグテンプレ(my-large.cnf)を抜き出し、最新のv10.3.8に投入するという少々乱暴なやり方でやってみていた。

 

でもやっぱしそれじゃいかん、気持ち悪いと思ってちゃんと調べ直したのですが、過去バージョンに含まれるコンフィグテンプレファイル(my-large.cnf)を投入しても別にエラーが出たり起動しなくなるといった事はありませんでした。

 

目に見えるエラーや警告は無かったので、あのテンプレはあのテンプレで特定のシチュエーションには使えるもののように思えます。もちろん廃止されているパラメータなんかもあるかもしれないので、それは調査しないと危険ですけど、とりあえず動かす分には動かせると。

 

おわり