【ラズパイ】MariaDBをインストールして初期セットアップする【MariaDB】

Linux
スポンサーリンク

 

先週からいろいろといじっているラズパイにMariaDBをインストールしてみました。

ラズパイ4はメモリもCPUも結構パワフルなので、DBサーバとして使用できるのでは?

と思いインストールからセットアップまで実施してみました。

ので、備忘録として残しておきます。

 

スポンサーリンク

インストール作業

# apt install mysql-client mysql-server

クライアント・サーバ両方インストールしておきます。

インストールしたらとりあえずサービス再起動してステータスを確認

# systemctl restart mysql
# systemctl status mysql
● mariadb.service - MariaDB 10.3.23 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-09-10 13:33:10 JST; 7s ago

起動まで確認。

 

セットアップ作業

rootのunix_socketの無効化

unix_socketが有効になっていると、オプションでそのユーザーを指定してログインしようとしても、実行したユーザーがそのユーザー名と一致しないとログインにはじかれてしまいます。

セキュリティ性を向上させるにはよいのですが、どうしても利便性が損なわれるため、今回はoffしておきます。

 

rootでログイン

mariadbの起動確認が完了したら、rootユーザーでログインします。

# mysql -u root

このとき、unix_socketが有効になっているため、ログインするためにはrootユーザーにsuするか、sudoをつけて実行してください。

ログインしたらrootユーザーであることを確認。

MariaDB [(none)]> SELECT USER();
+----------------+
|     USER()     |
+----------------+
| root@localhost |
+----------------+

 

無効化

現在の設定を確認します。

MariaDB [(none)]> USE mysql;
MariaDB [mysql]> SELECT Host,User,Password,plugin FROM user;
+-----------+------+----------+-------------+
|   Host    | User | Password |   plugin    |
+-----------+------+----------+-------------+
| localhost | root |          | unix_socket |
+-----------+------+----------+-------------+

pluginにunix_socketが設定されていることが分かります。

ので、こいつを空にUPDATEしてしまいましょう。

MariaDB [mysql]> UPDATE user SET plugin='' WHERE User='root';
Query OK, 1 row affected (0.001 sec)

これでもう一回確認すると、pluginからunix_socketが消えているはずです。

MariaDB [(none)]> USE mysql;
MariaDB [mysql]> SELECT Host,User,Password,plugin FROM user;
+-----------+------+----------+--------+
|   Host    | User | Password | plugin |
+-----------+------+----------+--------+
| localhost | root |          |        |
+-----------+------+----------+--------+

 

rootユーザーの初期セットアップ

↑でrootユーザーの情報を確認しましたが、パスワードもかかっていない状態です。

そのままだと誰でもrootでアクセスできるようになってしまっているので、まずはrootのパスワードやその他もろもろの初期セットアップを実施します。

その時に便利になるのが以下のコマンドです。

$ mysql_secure_installation

これを実行すると、対話型で必要な設定をどんどん設定していくことが可能です。

Enter current password for root (enter for none): <- noneパスなのでそのままEnter
OK, successfully used password, moving on…

Set root password? [Y/n] Y <- rootパスワードを設定するかどうか
New password: <- 新しいrootパスワード
Re-enter new password: <- もう一回
Password updated successfully!
Reloading privilege tables..
… Success!

Remove anonymous users? [Y/n] Y <- anonymousユーザーを削除するかどうか
… Success!

Disallow root login remotely? [Y/n] Y <- リモートからのrootログインを制限するかどうか
… Success!

Remove test database and access to it? [Y/n] Y <- テスト用DBを削除するかどうか
Dropping test database…
… Success!
Removing privileges on test database…
… Success!

Reload privilege tables now? [Y/n] Y <- テーブル情報のreload。とりあえずYでいいと思う
… Success!

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

完了したらUSER情報を確認してみる。

すると、先ほどは空だったパスワードカラムに値が入っているのが分かります。

+-----------+------+-------------------------------------------+--------+
|   Host    | User |                Password                   | plugin |
+-----------+------+-------------------------------------------+--------+
| localhost | root | ***************************************** |        |
+-----------+------+-------------------------------------------+--------+

 

ユーザーの追加

なんでもかんでもrootで操作すると、操作ミスでDBがおしゃかになることもあるので、ある程度操作を制限した別ユーザーを作成して、そのユーザーで運用することをお勧めします。

ので、ユーザーの追加手順。

今回は「pi」というユーザーを作成します。

$ mysql -u root -p
MariaDB [(none)]> CREATE USER 'pi'@'%' IDENTIFIED BY 'Password';
Query OK, 0 rows affected (0.001 sec)

これで、ユーザー名「pi」、パスワードが「Password」のユーザーが作成できました。

本当に作成できているかどうかをログインして確認。

$ mysql -u pi -p
MariaDB [(none)]> SELECT USER();
+--------------+
|    USER()    |
+--------------+
| pi@localhost |
+--------------+

いけてそうですね!

 

bind-addressの設定

別のサーバからアクセスしたいとき、mariaDBのbind-addressの設定を削除しないといけません。

初期設定ではlocalhostのみ許可されている状態のため、この設定を削除します。

# vi /etc/mysql/mariadb.conf.d/50-server.cnf
-----
(変更前) bind-address = 127.0.0.1
(変更後) # bind-address = 127.0.0.1
-----

# systemctl restart mysql

これでほかのホストからもアクセスできるようになるはずです。

接続ホストを制限したい場合はFWを利用するのがいいでしょう。

 

まとめ

  • ラズパイにmariaDBをインストールする手順まとめました
  • 以外と簡単!

本当は複数台並べてクラスタ設定とかしたかったのですが、財源は無限にはないのです・・・

冬のボーナスが出たら追加でラズパイ買おうかなあ。

 

コメント

タイトルとURLをコピーしました