動かざることバグの如し

近づきたいよ 君の理想に

MariaDBでSSLを無効にする

環境

  • MariaDB 11.8

症状

MariaDBサーバーをインストールして接続しようとすると、

ERROR 2026 (HY000): SSL connection error: unknown error number

が出て接続できない。SSLとか使ってないし無効化したい。

設定

/etc/my.cnf もしくは /etc/mysql/mariadb.conf.d/99-disable-ssl.cnf などに以下追記

[mysqld]
skip-ssl

skip-ssl は文字のごとくサーバーの TLS サポートを無効化して、すべて平文接続として扱うオプションである。

systemctl restart mysqlで再起動すれば設定が反映され、接続できるようになるはず。

ローカル接続時に SSL を無効化する

ローカルから mysql -u root -p -h 127.0.0.1 でつなぐときに同じエラーが出る場合、クライアント側でも TLS を無効化する必要がある。

/etc/mysql/mariadb.conf.d/99-disable-ssl-client.cnfなど作成して以下追記

[client]
skip-ssl
disable-ssl-verify-server-cert

mysql_secure_installationで初期設定時に失敗する

--skip-ssl オプションを付ける

mysql_secure_installation --skip-ssl

スレーブ作成時にエラーになる

スレービ作成時に MASTER_SSL=0MASTER_SSL_VERIFY_SERVER_CERT=0 をつけないといけない。

CHANGE MASTER TO
   MASTER_HOST='primary_host',
   MASTER_USER='replication_user',
   MASTER_PASSWORD='password',
   MASTER_LOG_FILE='binlog.000001',
   MASTER_LOG_POS=4,
   MASTER_SSL=0,
   MASTER_SSL_VERIFY_SERVER_CERT=0;

備考

以下の記事がMariaDBの仕様変更についてよくまとまっている。

tombo2.hatenablog.com

これを見ると11.4 LTSからSSLデフォルト有効の挙動になった模様。

参考リンク