MySQL は、Web アプリケーションのデータ ストレージと管理に広く使用されているオープン ソースのリレーショナル データベース管理システムです。実際のアプリケーション シナリオでは、データ同期、データ移行、複数のデータベース間でのデータの分散管理など、データに対するクロスサーバーおよびクロスデータベース操作を実装する必要があることがよくあります。
以下では、MySQL でデータのクロスサーバーおよびクロスデータベース操作を実装する方法とサンプル コードを紹介します。
まず、MySQL サーバー上で Federated Storage エンジンを有効にする必要があります。 my.cnf 設定ファイルに次の設定を追加します。
[mysqld] federated = ON
次に、データベースに Federated テーブルを作成し、接続するリモート MySQL サーバーの情報を指定します。
CREATE TABLE federated_table ( id INT(11) AUTO_INCREMENT, data VARCHAR(100), PRIMARY KEY (id) ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://[用户名]:[密码]@[远程MySQL服务器IP地址]:[端口号]/[数据库名]/[远程表名]';
上記の例では、コード、[ユーザー名]、[パスワード]、[リモート MySQL サーバーの IP アドレス]、[ポート番号]、[データベース名]、[リモート テーブル名]は、実際の状況に応じて置き換えてください。作成が成功したら、このフェデレーション テーブルを操作することで、サーバー間のデータ操作を実行できます。
まず、メイン データベースで設定を行います。次の構成を my.cnf 構成ファイルに追加します。
[mysqld] server-id=1 log_bin=mysql-bin binlog_format=row
次に、MySQL サービスを再起動します。
スレーブ データベースで構成します。次の構成を my.cnf 構成ファイルに追加します。
[mysqld] server-id=2
次に、MySQL サービスを再起動します。
マスター データベースにレプリケーション アカウントを作成し、レプリケーションのアクセス許可を付与します。
CREATE USER 'repl_user'@'从数据库IP地址' IDENTIFIED BY 'repl_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'从数据库IP地址';
このうち、スレーブ データベースの IP アドレスは、実際のスレーブ データベースの IP アドレスに置き換える必要があります。
次に、メイン データベース上のバイナリ ログのファイル名と場所を確認します。
SHOW MASTER STATUS;
File と Position の値を記録します。
スレーブ データベースにレプリケートされた情報を設定します:
CHANGE MASTER TO MASTER_HOST='主数据库IP地址', MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='二进制日志的文件名', MASTER_LOG_POS=二进制日志的位置;
このうち、マスター データベースの IP アドレスは実際のマスター データベースの IP アドレスに置き換える必要があり、ファイル名と場所はバイナリ ログは、前のステップの値を使用して記録する必要があります。
次に、スレーブ データベースでレプリケーション プロセスを開始します。
START SLAVE;
SHOW SLAVE STATUSG コマンドを使用して、レプリケーション プロセスのステータスを表示できます。
このようにして、マスター データベース上のデータ変更操作がスレーブ データベースに同期され、クロスサーバー データ操作が実現されます。
まとめると、MySQL は Federated Storage エンジンと Replication レプリケーション機能を通じて、クロスサーバーおよびクロスデータベースのデータ操作を実現できます。開発者は、実際のニーズに基づいて、サーバー間およびデータベース間でのデータ操作を実行するための適切な方法を選択できます。
上記は、MySQL でデータのクロスサーバーおよびクロスデータベース操作を実装するためのメソッドとサンプル コードです。
以上がMySQL でデータのクロスサーバーおよびクロスデータベース操作を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。