ArchLinuxにmariaDB10.6をインストールしてあれこれ設定する
さて、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