db.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. $db = [
  3. 'class' => 'yii\db\Connection',
  4. 'dsn' => 'mysql:host=amic-mysql;dbname=amic_new',
  5. 'username' => 'work',
  6. 'password' => 'work',
  7. 'charset' => 'utf8',
  8. // Schema cache options (for production environment)
  9. //'enableSchemaCache' => true,
  10. //'schemaCacheDuration' => 60,
  11. //'schemaCache' => 'cache',
  12. ];
  13. $enableSlaves = true;
  14. $slavesrv = 'mysql:host=192.168.1.4;port=3307;dbname='.DB_NAME; //slave с распределение нагрузки
  15. /*
  16. Привышение нагрузки
  17. */
  18. if( file_exists('/.data2/status/cache_on.fl') ){
  19. $slavesrv = 'mysql:host=192.168.1.3;port=3306;dbname='.DB_NAME; //все на slave
  20. }
  21. /*
  22. Падение реплики
  23. */
  24. if( file_exists('/home/admin/www-bot/replica-stop_192.168.1.3.fl') ){ //реплика упала
  25. $enableSlaves = false;
  26. }
  27. if(defined("DB_DSN")){
  28. $port = "";
  29. if(defined("DB_PORT") && DB_PORT!=="") $port = ";port=".DB_PORT;
  30. $db = [
  31. 'class' => 'yii\db\Connection',
  32. 'dsn' => 'mysql:host='.DB_DSN.$port.';dbname='.DB_NAME,
  33. 'username' => DB_USER,
  34. 'password' => DB_PASSWORD,
  35. 'charset' => 'utf8mb4',
  36. // Schema cache options (for production environment)
  37. 'enableSchemaCache' => true,
  38. 'schemaCacheDuration' => 60,
  39. 'schemaCache' => 'cache',
  40. 'enableSlaves' => $enableSlaves,
  41. 'slaveConfig' => [
  42. 'username' => DB_USER,
  43. 'password' => DB_PASSWORD,
  44. 'attributes' => [
  45. // используем небольшой таймаут для соединения
  46. PDO::ATTR_TIMEOUT => 10,
  47. ],
  48. ],
  49. // список настроек для подчинённых серверов
  50. 'slaves' => [
  51. ['dsn' => $slavesrv ],
  52. ],
  53. ];
  54. }
  55. return $db;