注目すべき変更点
ゼロコンフィギュレーションSSL
SSL接続を確立するためには、次の3つの解決策がありました:
- 信頼できるNode.js認証局(CA)でサーバー証明書を生成し、設定はssl: trueのようになりました。
- 次のようなサーバー証明書を使用してコネクタを設定します。
ssl: { ca: [ fs.readFileSync('server-cert.pem') ] } - 次のような証明書のSSL検証(安全ではない!)を無効にします。
ssl: { rejectUnauthorized: true }
MariaDB 11.4.1以降、サーバーにSSL証明書が設定されていない場合でも、ssl: trueのような単純な設定でSSLを有効にするのは非常に簡単です。パスワードが空でない場合、コネクタはサーバー証明書を知る必要はありません。これは、Mission Impossible: Zero-Configuration SSLの一部であり、クライアントはクライアントパスワードを使用してSSL証明書を検証します。
パイプラインのPREPAREとEXECUTE
connection.executeの以前の使用法は、最初にPREPAREコマンドを実行し、PREPARE応答を読み取り、EXECUTEコマンドを実行し、最後にEXECUTE応答を読み取るというものでした。
新しい実装では、MariaDBサーバー 10.2以降を使用し、pipeliningオプションが有効(デフォルト値)な場合、PREPAREを実行し、EXECUTEを実行し、次にPREPARE応答を読み取り、EXECUTE応答を読み取ります。これにより、ネットワーク遅延の多くを回避できます。
この改善は特定のクエリの最初の実行に関するものであり、デフォルトで``PREPARE``がキャッシュされるため、2回目の実行では``EXECUTE``コマンドのみが実行されます。
修正されたバグ
- character-set-collations = utf8mb4=uca1400_ai_ciでは、11.3以降のサーバーに接続できない
- データベースに接続されていない時にconnection.importFileを使用すると、エラーが発生する
- 16Mを超えるクエリを送信するとバッファが上書きされる可能性がある
- mysql_clear_testパスワード認証プラグイン使用時のエラー
- バイナリの符号なしのMEDIUMINTの誤ったデコード
- 非推奨のオプション'supportBigNumbers'セットによるDECIMALフィールドの間違ったデコード
補足事項
- クエリのエンコードとデコードのパフォーマンスの向上
MariaDB Connector/Node.js 3.3.0のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-connector-nodejs-3-3/3-3-0/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。