Master/Master/Slave (High availability/High performance)
Last updated on
30 April 2025
The following setup has 2 masters and 2 slaves. The two master will also be used as slaves. The setup will prefer master1 as the master, and switch to master2 if master1 fails.
<?php
$databases['default']['master1'] = array (
'database' => 'mydatabase',
'username' => 'readwrite',
'password' => 'readwrite',
'host' => 'master1',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
);
$databases['default']['master2'] = array (
'database' => 'mydatabase',
'username' => 'readwrite',
'password' => 'readwrite',
'host' => 'master2',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
);
$databases['default']['slave'][] = array (
'database' => 'mydatabase',
'username' => 'readonly',
'password' => 'readonly',
'host' => 'slave1',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
'readonly' => TRUE,
);
$databases['default']['slave'][] = array (
'database' => 'mydatabase',
'username' => 'readonly',
'password' => 'readonly',
'host' => 'slave2',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
'readonly' => TRUE,
);
$databases['default']['slave'][] = $databases['default']['master1'];
$databases['default']['slave'][] = $databases['default']['master2'];
$databases['default']['default'] = array (
'driver' => 'autoslave',
'master' => array('master1', 'master2'),
'slave' => array('slave'),
);
?>
Help improve this page
Page status: Not set
You can:
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion