さて、EeePCにArchLinux32をインストールしましたが、
早速ですが、mariaDBをインストールしています。

以下が手順となります。


mariaDB10.6のインストール

Server version: 10.6.4-MariaDB Arch Linux

$ sudo pacman -S mariadb

で、この後、systemctl start mariadbでサービス起動しようとしたら、起動しませんでした。
以前見たことのあるエラーです。

Fatal error: Can't open and lock privilege tables: Table 'mysql.db' doesn't exist

はい、この現象はManjaroLinuxの時と同じですね。
というわけで、以下を実施するとサービスが起動するようになります。


ArchLinux系で特有のエラーを解除する

$ sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ sudo systemctl start mariadb

でも、この状態だと「mysql」コマンドだけでパスワードなしでログインできてしまいます。

まずは以下コマンドでmariadbに入ります。

$ sudo mysql -uroot

mariaDBの権限設定をする(外部接続など)

そして以下でパスワード設定しましょう。

> grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;

上記は全部のDBに外部からもアクセス可能なユーザ権限としています。

特定のDBだけ許可する場合は以下とします。(※「dbA」部分を適宜置き換えてください。)

> grant all privileges on dbA.* to 'username'@'%' identified by 'password' with grant option;

また、特定のIPアドレスだけの許可であれば以下のようにします。

> grant all privileges on dbA.* to 'username'@'192.168.x.x' identified by 'password' with grant option;

外部からアクセス許可したい場合、上記以外に設定ファイルも確認が必要です。

# ubuntu など
/etc/mysql/mariadb.conf.d/50-server.cnf 
/etc/mysql/mariadb.conf.d/mysqld.conf 

### ArchLinux
/etc/my.cnf.d/server.conf 

上記設定ファイルを開き、以下の箇所をコメントアウトします。

#bind-address           = 127.0.0.1

また、Linuxのファイヤウォールを起動させている場合、UFW側でもポートの解放が必要です。

$ sudo ufw allow from 192.168.1.0/24 to any port mysql