MariaDB 10.11.10 を自分の PC (Windows 10 バージョン 22H2) にインストールしましたので、その手順などを備忘録として書いておきます。
2024 年 12 月に自分が使っているホスティングサービスで新サーバーへの移行がありました。新サーバーでは MariaDB 10.11 が使用されており、それに自分がブログアプリで使っているプロバイダ MySql.Data 6.3.6 でアクセス��るとサーバーエラーになるという問題が生じました。
(MariaDB とMySql.Data との相性の話は MySQL Connector fails to connect to MariaDB 10.10.2 とか MySqlConnection.Open() System.InvalidCastException: Object cannot be cast from DBNull to other types に情報がありますので興味があれば見てください)
そういう訳で、自分の開発環境での検証用に、ホスティングサービスが使っている MariaDB 10.11 と同じバージョンのものを MariaDB Server: the innovative open source database から入手して自分の PC にインストールしました。(ちなみに、記事を書いた時点での最新版は 11.6.2 です)
まず、MariaDB のダウンロードページ Download MariaDB Server に行き、ドロップダウンリストでバージョンを選び[Download]ボタンをクリックします。
ドロップダウンリストで MariaDB Server 10.11.10 を選んだ場合 mariadb-10.11.10-winx64.msi という msi 形式のインストーラーがダウンロードされますので、それを起動してインストールします。
以下にインストールするときに表示された画像を貼って要点を書いておきます。
(1) 初期画面
ダウンロードした mariadb-10.11.10-winx64.msi を起動すると上の画面が表示されます。[Next] ボタンをクリックします。
(2) Und-User License Agreement 画面
ライセンス条項が表示されるので、アクセプトして ([I accept the terms in the License Agreement] にチェックを入れて)、 [Next] ボタンをクリックします。
(3) Custom Setup 画面
カスタム設定のための画面が表示されます。自分の環境ではデフォルトのままで問題ないので、何も変更せず [Next] ボタンをクリックしました。
(4) Deafult instance properties 画面 (1/2)
データベースに root ユーザーで接続する際のパスワードなどの設定画面が表示されます。今後の接続の際に使用するパスワードを決めて入力します。パスワードはおぼえておいてください。
[Use UTF8 as default server's character set] にチェックを入れます。[Data directory] はデフォルト C:\Program Files\MariaDB 10.11\data\ のままにしました。
ローカルでの検証用に使うだけなら [Enable access from remote machines for 'root' user] は不要ですが、将来そういう必要も出てくるかもしれないと思ってチェックを入れておきました。
以上の設定を入力して [Next] ボタンをクリックします。
(5) Default instance properties 画面 (2/2)
デフォルトの設定のまま [Next] をクリック・・・したのですが、"The TCP Port you selected is already in use. Please choose a differnt port." というエラーメッセージが出て先に進みません。
記録に残っていないですが、先に MySQL 8.0.19 をインストールした際、ポート 3306 を使用したようです。(ちなみに、ノート PC の MySQL 5.7.17 が 3306、PostgreSQL は 5432 というのは記録に残っていました)
という訳で、[TCP port] のみ 3307 に変更しました。その他は上の画面の通りのデフォルトのまま [Next] ボタンをクリックします。
(6) Ready to install MariaDB 10.11 (x64) 画面
[Install] ボタンをクリックします。ボタンには盾マークが表示されていますが、インストールの際に権限の昇格が必要という意味です。インストールが進まない場合はユーザーアカウント制御画面が表示されているはずなので [はい] をクリックしてください。
[はい] をクリックすると Installing MariaDB 10.11 (x64) 画面が表示され、インストールが開始されるはずです。
(7) Completed the MariaDB 10.11 (x64) Setup Wizard 画面
インストールが完了すると上の画面が表示されます。[Finish] ボタンをクリックして終了します。
(8) スタートメニュー
インストールの結果、Windows のスタートメニューには上の画像の項目が表示されます。
一番下の MySQL Client (MariaDB 10.11 (x64)) が MySQL の Command Line Client と同様なものらしいです。
メニューに含まれる HeidiSQL というのは、SQL Server Management Tool と同様に GUI で MariaDB の操作ができるツールのようです。詳しくは What is HeidiSQL? を見てください。
インストールした MariaDB に接続して使えるようにする方法を下に書いておきます。
(a) HeidiSQL 初期画面
起動すると上の初期画面が表示されます。[新規] ボタンをクリックします。
(b) HeidiSQL 初期設定
上の画面で名前を「ローカルMariaDB」とし (任意に覚えておきやすい名前を設定)、ポートを 3307 に変更 (ポートは MariaDB のインストール時に設定したもの)、パスワードに MariaDB のインストール時に設定したものを入力して [開く] ボタンをクリックします。
(c) HeidiSQL 画面
上の画面が表示されます。「ローカルMariaDB」下に表示されている項目は、上の手順で MariaDB 10.11.10 をインストールした際に同時にインストールされたデータベースです。
自分は HeidiSQL を使って、データベース blogengine を作成し、[ファイル] ⇒ [SQL ファイルを実行] でホスティングサービスからエクスポートした SQL を走らせてブログの記事のデーターベースを複製しました。
上の手順でインストールした MariaDB 10.11.10 に MySql.Data を使って接続を試みるとどうなるかを検証してみました。
ちなみに、接続文字列は MySQL と同じものに port=3307 を追加すれば OK でした。以下の様にします。
server=localhost;user id=root;password=********;database=mysql;port=3307
MySql.Data 8.1 以降であれば、問題なく MariaDB 10.11.10 に接続でき、データを取得できました。
MySql.Data 8.0.11 では MySql.Data.MySqlClient.MySqlException "The host localhost does not support SSL connections." という例外がスローされます。
MySql.Data 6.x では System.InvalidCastException "オブジェクトを DBNull から他のタイプにキャストすることはできません。" という例外がスローされます。
・・・ということで、既存のブログアプリで使っている MySql.Data 6.3.6 がダメということでした。MySql.Data 8.1.0 は既存のブログアプリのフレームワーク .NET Framework 3.5 には対応してないので MySql.Data.dll を入れ替えれば済むという問題ではないことが分かりました。