Предисловие
Многие базы данных поддерживают репликацию баз данных для повышения доступности баз данных, ускорения времени отклика сервера и снижения нагрузки на базу данных. С помощью функции репликации базы данных данные реплицируются с так называемого главного сервера на подчиненный сервер. Основной сервер вносит дополнения и удаления, в то время как подчиненный сервер выполняет запросы.
Предварительное условие разделения чтения и записи: конфигурация синхронизации ведущего и ведомого устройства базы данных Linux
Синхронизация данных двух серверов является предварительным условием разделения операций чтения и записи, но этого нет в руководстве по разделению операций чтения и записи Yii2. Конфигурация разделения чтения и записи базы данных yii2 реализует только чтение-запись в основной базе данных и запрос в подчиненной базе данных, поэтому сначала нам необходимо настроить синхронизацию данных главного и подчиненного серверов. Дополнительные сведения см. в разделе Конфигурация синхронизации ведущего и ведомого устройства базы данных Linux
Вложение: Синхронизация конфигурации выполнена успешно, и сбой синхронизации вызван неправильной работой или другими причинами. Как решить эту проблему? Просмотр: Решение проблемы Синхронизации данных Mysql Master-Slave
Конфигурация разделения чтения и записи
После завершения синхронизации базы данных ведущего и ведомого серверов Linux мы можем запустить конфигурацию разделения чтения и записи yii 2. Официальные документы по этому аспекту также доступны, но утверждение неясно, и нет практических примеров. Я здесь для того, чтобы улучшить его.
1. Откройте файл конфигурации базы данных common config main-local. php и настройте его в атрибуте БД следующим образом:
'db' => [ 'class' => 'yii\db\Connection', // Configure the master server 'dsn' => 'mysql:host=192.168.0.1;dbname=hyii2', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', // Configure the slave server 'slaveConfig' => [ 'username' => 'root', 'password' => 'root', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], 'charset' => 'utf8', ], // Configure the slave server组 'slaves' => [ ['dsn' => 'mysql:host=192.168.0.2;dbname=hyii2'], ], ],
Если вышеуказанная конфигурация может реализовать операцию разделения чтения и записи базы данных yii2, это очень просто, пока одна конфигурация в порядке, функция разделения чтения и записи автоматически завершается фоновым кодом, вызывающему абоненту не нужно беспокоиться.
Приведенная выше конфигурация представляет собой только один ведущий-ведомый. Если требуется один ведущий-ведомый или многомастерный ведомый, его можно заполнить, обратившись к этому примеру и официальным документам. Официальные документы