ホームページ  >  記事  >  バックエンド開発  >  PHPでmysqlの読み取りと書き込みの分離を実装する方法

PHPでmysqlの読み取りと書き込みの分離を実装する方法

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2023-06-01 15:21:501603ブラウズ

mysql の読み書き分離を実装する

php メソッド: 1. MySQL マスター/スレーブ レプリケーションをインストールし、MySQL データベース インスタンスをマスター/スレーブ レプリケーション アーキテクチャに設定し、バイナリ ログを有効にします; 2. 接続する PHP コードを作成します。 MySQL を作成し、PHP の「PDO」拡張子と「mysqlnd_ms」拡張子を使用して実装される 2 つの異なる接続文字列を作成します。 3. php.ini ファイルで「mysqlnd_ms」拡張子を構成します。

PHPでmysqlの読み取りと書き込みの分離を実装する方法

このチュートリアルのオペレーティング システム: Windows 10 システム、php8.1.3 バージョン、Dell G3 コンピューター。

mysql の読み取りと書き込みの分離を実現するための php メソッド:

1. MySQL マスター/スレーブ レプリケーションをインストールします

まず、 MySQL データベース インスタンスは、マスター/スレーブ レプリケーション アーキテクチャでセットアップされます。これには、マスター サーバー上にマスター データベースを作成し、すべてのスレーブ サーバー上にスレーブ データベースを作成することが含まれます。さらに、メイン サーバーでバイナリ ログを有効にする必要があります;

2. MySQL に接続するための PHP コードを作成し、2 つの異なる接続文字列を作成し、PHP の "PDO" 拡張子と "mysqlnd_ms" 拡張子を使用して、 this;

次は、PDO を MySQL サーバーに接続するためのコード例です:

$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'myusername';
$password = 'mypassword';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
try {
    $dbh = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

3. 最後に、「mysqlnd_ms」拡張機能を構成します。

mysqlnd_ms を PHP で動作させるには、php.ini ファイルで設定する必要があります。以下は設定例です。

extension=mysqlnd_ms.so
mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/etc/mysqlnd_ms_plugin.ini

ここで、/etc/mysqlnd_ms_plugin.ini は、MySQL マスター/スレーブ インスタンスに関する詳細情報を含む設定ファイルです。設定ファイルの例は次のとおりです:

{
    "myapp": {
        "master": {
            "host": "localhost",
            "port": "3306",
            "user": "myuser",
            "password": "mypassword",
            "database": "mydatabase"
        },
        "slave": [
            {
                "host": "10.0.0.1",
                "port": "3306",
                "user": "readonly",
                "password": "readonlypw",
                "database": "mydatabase
            }
}

以上がPHPでmysqlの読み取りと書き込みの分離を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。