MariaDBを外部接続する方法

今回はMariaDBを外部接続する方法です。

MariaDBを外部接続できるようにする

vim /etc/my.cnf.d/server.cnf

で開き

#bind-address=0.0.0.0
から
bind-address=0.0.0.0
に変更します。
全て許可の場合は0.0.0.0で許可を指定する場合はIPアドレス又はドメイン名
systemctl restart mariadb

ファイアフォールでの許可

firewall-cmd --add-port=3306/tcp --zone=public --permanent
firewall-cmd --reload

これで外部接続ができます。

ユーザーの追加

#mariadb10.5以下の場合
grant all privileges on *.* to <ユーザー名>@"%" identified by <password> with grant option;
#mariadb10.6以上の場合
create user 'ユーザー名'@'%' identified by 'パスワード';
grant all on test.* to 'ユーザー名'@'%' with grant option;

接続できるか確認

mysql -u <ユーザー名> -p -h <ipアドレス>

このままだと第三者に見られる可能性があるため暗号化できるようにします。

先にsslを取得してください。

SSLを入れるディレクトリー作成

mkdir -p /etc/sql/ssl

取得したSSLをコピー

(例)Let’s Encryptから取得した場合

cp /etc/letsencrypt/live/ドメイン名/* /etc/sql/ssl
chown -R mysql. /etc/sql/ssl/*

MariaDBの設定に書き込む

vim /etc/my.cnf.d/server.cnf
[mysqld]
ssl-ca=/etc/sql/ssl/chain.pem
ssl-cert=/etc/sql/ssl/cert.pem
ssl-key=/etc/sql/ssl/privkey.pem
systemctl restart mariadb

SSLでの接続は

mysql -u <ユーザー名> -p -h <IPアドレス> --ssl

接続を確認

show status like 'ssl_cipher';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| Ssl_cipher    | TLS_AES_256_GCM_SHA384 |
+---------------+------------------------+

Valueに表示されていない場合は接続できていません。

もしwordpressでMariaDBにssl接続したい場合は

wp-config.phpに

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
define('MYSQL_SSL_CA', getenv('MYSQL_SSL_CA'));

を書き込みしてください。

最後まで読んでくれてありがとうございました。

この記事が良かったら、シェアしてね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です