mysql の読み書き分離を実装する
php メソッド: 1. MySQL マスター/スレーブ レプリケーションをインストールし、MySQL データベース インスタンスをマスター/スレーブ レプリケーション アーキテクチャに設定し、バイナリ ログを有効にします; 2. 接続する PHP コードを作成します。 MySQL を作成し、PHP の「PDO」拡張子と「mysqlnd_ms」拡張子を使用して実装される 2 つの異なる接続文字列を作成します。 3. php.ini ファイルで「mysqlnd_ms」拡張子を構成します。
このチュートリアルのオペレーティング システム: 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 サイトの他の関連記事を参照してください。