yii2 php7 mariadb

http://www.yiiframework.com/forum/index.php/topic/63662-yii2-and-php-7/

появилась проблема после апгрейда до php7

версии:

после загрузки компа все работает, через минут 15 пропадает подключение к БД

при этом mysql-workbench к базе подключается,

из консоли

  • работает.

в логе mysql ошибок нет, в логе php тоже ошибок нет.

подскажите что делать

в момент наличия проблемы tcpdump показывает что сетевые пакеты к mariadb не отправляются.

нет ни у кого предположений почему пул соединений не пытается реконектиться?

для себя решил проблему добавлением


'serverStatusCache' => NULL,

т.е. так работает:




'db' => [

  'class' => 'yii\db\Connection',

  'serverStatusCache' => NULL,

  'masterConfig' => [

    'username' => 'db_user',

    'password' => 'strong_passwd',

    'charset' => 'utf8',

    'attributes' => [

      PDO::ATTR_TIMEOUT => 10,

      PDO::ATTR_PERSISTENT => TRUE,

    ],

  ],

  'masters' => [

    ['dsn' => 'mysql:host=127.0.0.1;dbname=db'],

  ],

  'slaveConfig' => [

    'username' => 'db_user_ro',

    'password' => 'strong_password',

    'charset' => 'utf8',

    'attributes' => [

      PDO::ATTR_TIMEOUT => 10,

      PDO::ATTR_PERSISTENT => TRUE,

    ],

  ],

  'slaves' => [

    ['dsn' => 'mysql:host=127.0.0.1;dbname=db'],

  ],

],



обновлю тему.

решение, описанное в предпоследнем посте просто позволяет не кэшировать статус, но периодически ошибка "None of the master DB servers is available." вываливается.

данная ошибка выловлена не на 1 инстансе, а на кластере после обновления до php7, при чем php 5.6 + mariadb работает, php7 + эта же версия mariadb не работает.

истинное решение данной проблемы дает закоментировать строку "PDO::ATTR_PERSISTENT => TRUE," или соответственно выставить как по дефолту ее в FALSE.

отказаться от персистент - это конечно проседание в производительности, но это это лучше чем совсем "None of the master DB servers is available."

проблема стабильно воспроизводится.


Yii Version 2.0.10-dev

на данный момент