前提
Laravelでデータベースをマスター、スレーブの構成にし、MySQLのレプリケーションをしています。readのクエリはマスターに向け、writeのクエリはスレーブに向けています。
config/database.php
<?php return [ 'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'read' => [ 'host' => env('DB_SLAVE_HOST', '127.0.0.1'), 'port' => env('DB_SLAVE_PORT', '3306'), ], 'write' => [ 'host' => env('DB_MASTER_HOST', '127.0.0.1'), 'port' => env('DB_MASTER_PORT', '3306'), ], 'sticky' => true, 'database' => env('DB_DATABASE', 'database'), 'username' => env('DB_USERNAME', 'appuser'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', ],
実現したいこと
それぞれのクエリが向けられているホスト名を確認したいと考えています。
「トランザクション時のクエリ」「同一HTTPでwriteのクエリ発行後のreadのクエリ」「config/database.php
の値をconnections.mysql.read.host
をhostの情報で上書きした場合のreadのクエリ」など様々なクエリを想定しており、それぞれのクエリが向けられているホスト名をデバッグして確実に確認したいです。
試したこと
toSql()
メソッドですとクエリはデバッグできるのですが、ホスト名は確認できません。DB::connection()->getConfig()
ですとホスト名は取得できるのですが、個々のクエリのホスト名は取得できません。
補足情報(FW/ツールのバージョンなど)
- Laravel 5.5
- MySQL 5.6
まだ回答がついていません
会員登録して回答してみよう