Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

Raspberry Pi OSに直接インストールするパターンです。Dockerではありません。

インストールしたMariaDBは、mariadbd --version v10.5.19でした。

Raspberry Pi OSは、bullseyeの64bitです。今回はデスクトップ環境です。

MariaDBのインストール

sudo apt update && sudo apt full-upgrade
sudo apt install mariadb-server libmariadb-dev

バージョンによってlibmariadb-devは要らないかも。エラーの場合に試してください。

Raspberry Pi OSらしく、aptパッケージでインストールしました。

次に、PythonでmariaDB(mysql)を操作するのに必要なソフトもインストールします。

pip3 install mariadb-connector-python

rootパスワードなど初期設定をする

記事執筆時点だと、ウィザード形式で設定していくツールがあります。

10.5.2から始まるMariaDB MariaDB 10.5.2から、mysql_secure_installationはシンボリックリンクであり、mariadb-secure-installationはバイナリ名です。

mysql_secure_installation - MariaDB Knowledge Base

Unixソケット認証を使わない

少しややこしいのですが、Unixソケット認証は使わない方法で使います。

MariaDB 10.4から変更になったunix_socket

MariaDB 10.4では、Unixソケット認証がデフォルトで適用され、通常はルートパスワードを作成する必要はありません。

Unixソケット認証だと、Linux側(今回だとRaspberry Pi OS)のrootユーザーで利用できるため、改めてrootパスワードの作成は要らないとなっています。

まぁ、便利といえば便利。 しかし、Raspberry Pi OSは、そもそもデフォルトでrootのパスワードも設定されていません。sudoで事足ります。

逆にMariaDBではrootユーザーで使うことにしました。

■Pi 5は8GBモデルがオススメ

ウィザードで設定する

次のコマンドで始めます。

sudo mysql_secure_installation

root パスワードを設定するか、unix_socket を使用すると、適切な権限がなければ誰も MariaDB root ユーザーにログインできなくなります。 root アカウントはすでに保護されているため、「n」と答えても問題ありません。

Noにすると、結局は昔の方法と一緒ということです。というか、Noにしておかないと面倒かも知れません。ウィザードで言うところの2番目の質問でNoです。

全ウィザードは他所でもみられますが一応載せておきます。Noは2箇所ですね。

Enter current password for root (enter for none): (そのままEnter)

Switch to unix_socket authentication [Y/n] n

Change the root password? [Y/n] y
New password: (使いたいパスワードの入力)
Re-enter new password: (再度入力)

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] n (rootのリモートアクセスは拒否)

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

データベースを作成する

今回はMetabaseで使うデータベースを作成しておきます。Metabaseについては別の記事で確認してください。

  • データベース名:metabase
  • DBユーザー名:metabase

先程初期ウィザードで設定したrootのパスワードを入力してmysqlを起動します。

mysql -u root -p

metabaseとなっている箇所は、自分の環境に合わせてください。

MariaDB [(none)]> CREATE DATABASE metabase DEFAULT CHARACTER SET utf8;

MariaDB [(none)]> CREATE USER metabase IDENTIFIED BY 'metabase';

MariaDB [(none)]> GRANT ALL ON *.* TO 'metabase'@'localhost' IDENTIFIED BY 'metabase';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> quit;

最後にリスタートして終わりです。

sudo systemctl restart mysql

MariaDBの自動起動

mariadbを自動的に起動させるため有効にしておきます。

sudo systemctl enable mariadb

これで取りあえずMariaDBを、Raspberry Pi OSに直接構築(ローカル環境)したことになります。

現在と自動起動の状況一覧がサービス毎に知ることができるコマンド

systemctl list-unit-files --type=service