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はバイナリ名です。
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



