PHPでは、 mysqli_driver :: embedded_server_start関数を使用して、埋め込まれたmysqlサーバーを起動します。この方法により、MySQLサービスを同じプロセスで実行できるため、MySQL Serverインスタンスを個別に開始する必要はありません。これは、軽量アプリケーションやテスト環境など、データベースが必要なシナリオに主に適しています。
この記事では、埋め込まれたMySQLサーバーがMySQLI_DRIVER :: EmbedDed_Server_Startが実行できる操作と、適用可能なシナリオと制限を紹介します。
埋め込まれたMySQL Serverは、MySQLが提供する埋め込みモードであり、開発者がデータベースサービスをアプリケーションに直接埋め込み、データベースサービスの開始と維持の手順を個別に排除できるようにします。そのコアは、MySQLの組み込みライブラリ(libmysqld)で、PHPのmysqli_driverクラスを通じて呼び出すことができます。
<?php
$driver = new mysqli_driver();
// 組み込みサーバーパラメーター
$args = [
"basedir=/usr/local/mysql",
"datadir=/usr/local/mysql/data",
"port=3307",
"skip_networking=0",
];
// 埋め込みを開始します MySQL サーバ
$driver->embedded_server_start($args);
// 连接到嵌入式サーバ
$mysqli = new mysqli("localhost", "", "", "", 3307);
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
echo "埋め込みに正常に接続されています MySQL サーバ!";
$mysqli->close();
$driver->embedded_server_shutdown();
?>
上記の例では、 $ driver-> embedded_server_start()を介してMySQL Serverインスタンスを開始し、標準のMySQLI接続メソッドを介してアクセスしました。
組み込みサーバーが開始された後、基本的には、以下を含む標準のMySQLサーバーでサポートされているすべてのデータベース操作を実行できます。
データベースとテーブルの作成、変更、削除
データの追加、削除、修正、クエリ(CRUD)操作
複雑な結合、トランザクションなどを含むSQLクエリの実行。
ストアドプロシージャとトリガーのサポート
マルチスレッドクエリ処理
ユーザー許可管理(設定可能)
言い換えれば、リモートMySQLサーバーのようにアプリケーションが組み込みサーバーに接続できる完全なMySQLサーバー環境を提供します。
スタンドアロンアプリケーション<br> データベース機能を必要とするが、追加のMySQLサービスを展開したくないデスクトップまたはスタンドアロンアプリケーションに適しています。
テスト環境<br> 自動テストでクリーンなデータベース環境をすばやく開始し、外部サーバーに依存しないようにします。
軽量または一時的なサービス<br> 小規模サービスまたはプロトタイプ開発への埋め込みに適しています。
パフォーマンスの制限<BR> 埋め込まれたサーバーは、主に軽量アプリケーションを対象としており、高電流の生産環境には適していません。
複雑な構成<br> BasedirとDatadirを正しく設定する必要があります。そうしないと、起動しない場合があります。
ネットワークの制限<BR> ネットワーク関数はデフォルトで無効になり、ネットワークアクセスをパラメーターで有効にする必要があります。
互換性の制限<BR> すべてのMySQLバージョンとオペレーティングシステムが埋め込みモードをサポートするわけではありません。
詳細については、公式のMySQLドキュメントとPHP mysqli_driverの指示を参照してください。ここに関係するURLドメイン名はm66.netに置き換える必要があるため、例は次のとおりです。
関連タグ:
MySQL