概要
WindowsServer2016上で全文検索(groonga)付のMariaDBを使いたかったので、mroongaで提供されているzipファイルのバイナリを用いてインストールしたときの記録。
安易にデータディレクトリをd:\ドライブにしようとおもってハマったのと、サービス化にあたってあれこれしたので、そちらの対処記録ともいえる。
前提としているのは mroonga 11.0。
公式サイトのドキュメントに従い、msiパッケージでなくzip版をダウンロードしたものを利用する。
(通常はドキュメントにあるとおりmysqldを実行すれば問題なく動作する)
以下の記事を参考にしている。
- MariaDB Community Server 10.4.11 - Installing on Windows 10
- mariaDB10.0.21でmroongaを使ってみる
- MySQLをWindowsサービスに登録する
- Windows 版の MariaDB を ZIP パッケージからインストールしてみた
準備
- mroonga入りmariadb (今回は mariadb-10.2.36-with-mroonga-11.00-winx64.zip を使用)
- mroongaのgithubより、pluginをインストールするときのsql文
- MySQLよりtime_zone定義ファイル timezone_2021a_posix_sql.zip
インストール
概ね MariaDB Community Server 10.4.11 - Installing on Windows 10 を参考にした。
コマンドプロンプトの操作は、インストール作業中は**「管理者として実行」**で利用する。
mariadb+mroongaのzipファイルの展開
今回はシステムのインストール先を c:\opt\mariadb とし、データを d:\var\lib\mariadb\data という設定とする。
zipファイルを c:\opt\mariadb に展開。
データディレクトリの初期化
c:\opt\mariadb\mariadb-10.2.36\bin\mysql_install_db.exe \
--datadir=D:\var\lib\mariadb\data --password=<rootのパスワード>
このコマンド実行で、データディレクトリ内にmy.ini
ファイルが生成される。
元記事を参照しつつ、編集する。
注意事項としては上記作業でtimezoneの定義が消えるので、default-time-zone
だけコメントアウトした状態にしておく。
起動確認
編集した設定設定内容で起動できるか、コマンドライン上でサーバを起動してみる。
ここでエラーがでる場合は見直しておく。
mysqld.exe --defaults-file=D:\var\lib\mariadb\data\my.ini --console
タイムゾーンデータのインポート
準備でダウンロードした timezone_2021a_posix_sql.zip
の中身のsqlファイルを取り出しておく。
以下を実行する。
mysql.exe --defaults-file=D:\var\lib\mariadb\data\my.ini -u root -p -D mysql < timezone_posix.sql
エラーがなければ、特に表示なく終了する。
my.ini
の中で先ほどコメントアウトした default-time-zone を有効にする。
再びmysqldを--consoleオプションで起動し、エラーがでないことを確かめる。
mroongaプラグインの有効化
準備でダウンロードしておいた install.sql.in はMakeされる前の状態なので、手動で @MRN_PLUGIN_SUFFIX@
を .dll
に置換しておく。
あらたにコマンドプロンプトを起動し(さきほどの--consoleのmysqldを起動したまま)、以下を実行。
mysql.exe --defaults-file=D:\var\lib\mariadb\data\my.ini -u root -p < install.sql
こちらもエラーが出ないことを確認する。mysqlを起動し、プラグインが有効化されたか確認。
mroongaが YES になっていること。
> show engines;
サービスとして登録
起動していたmysqldは終了させる(ctrl+c
で止められる)
以下のコマンドを実行。
mysqld --defaults-file=D:\var\lib\mariadb\data\my.ini --install MariaDB
このコマンドでサービスが登録されるので、「コンピュータの管理」→「サービス」で確認することができる。
アンインストールについては以下のいずれかで行える。
mysqld --remove MariaDB
# or
sc stop MariaDB
sc delete MariaDB
接続確認
上記設定群はローカル接続しか受け付けていないが、DataGripなりHeidiSQLなりで127.0.0.1:3306で接続できることを確認する。
必要に応じてbind設定する。
[mysqld]
# 省略
bind-address = 0.0.0.0