Добрый день, есть необходимость вынести базу данных в облако yandex.cloud, столкнулись с проблемой при подключении к базе данных. по умолчанию яндекс позволяет подключаться только с использованием ssl, как заставить cs cart дружить с этим?
Пример подключения из документации яндекса
$conn = mysqli_init();
$conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$conn->ssl_set(NULL, NULL, ‘~/.mysql/root.crt’, NULL, NULL);
$conn->real_connect(‘rc1a-ossyhjnwiswg7n2z.mdb.yandexcloud.net’, ‘user1’, ‘’, ‘db1’, 3306, NULL, MYSQLI_CLIENT_SSL);
Вроде как можно и без использования ssl
$conn = mysqli_init();
$conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false);
$conn->real_connect('<FQDN хоста MySQL>', '<имя пользователя>', '<пароль пользователя>', '<имя БД>', 3306, NULL, NULL);
$q = $conn->query('SELECT version()');
$result = $q->fetch_row();
echo($result[0]);
$q->close();
$conn->close();
но чего-то не можем сообразить куда вставить отключение сертификата в подключении cs cart.
Подскажите, заранее спасибо
А для чего понадобилось увеличивать количество точек отказа?
База достаточно велика, уйма данных в виде фото и характеристик товаров, есть подозрение что если вынести ее в облако, возможно это даст прирост производительности, ну и вероятность того что упадет облако значительно меньше, чем вероятность того что упадет сервер.
Вопрос все еще актуален, может кто-то поможет советом
эти классы смотрели? app/Tygh/Backend/Database
Да, но так и не смекнули куда бы что добавить что бы инициализировать подключение без ssl как в примере выше
попробуйте в app/Tygh/Backend/Database/Mysqli.php
после
$this->conn = new \mysqli($host, $user, $passwd, $database, $port);
добавить
$this->conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false);
(!) Не тестировано
Пробовали, не получается
я так понимаю это нужно указывать перед подключением.
Вынос на отдельный сервер внутри датацентра зачастую требует очень качественного и широкого канала, а то что вы решили сделать чревато очень крупными проблемами. Надежней? Возможно. Быстрее? Очень и очень нет
Для клаудовых решений нужен клаудовый подход к коду, ну и как минимум понимаени того как это работает в принципе. Само по себе облако это не панацея от всех проблем, версийность базы данных очень важна, на пример с современными версиями цскарт работает не так уж и хорошо даже на локальных серверах, на удаленных же добавляются задержки в комутации + накладные расходы на шифрование. В общем идея отличная когда это 1 запрос на запись о заказе или о платеже, но не в случае когда обычная страница в лучшем случае генерирует около 100-200 запросов, а в худшем может и несколько тысяч. В общем если есть проблемы, велкам к нам на площадку, проанализируем где у вас проблемы.
1 лайк
Да уже подключились, потестили, поняли что либо полностью в облако сваливать, либо это будет все долго. В общем скорее всего железку по мощнее возьмем…
а подключиться с ssl можно так, вдруг кому понадобится
// $this->conn = new \mysqli($host, $user, $passwd, $database, $port);
$this->conn = mysqli_init();
$this->conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$this->conn->ssl_set(NULL, NULL, ‘/var/www/www-root/data/www/domen.ru/root.crt’, NULL, NULL);
$this->conn->real_connect($host, $user, $passwd, $database, $port, NULL, NULL);
1 лайк
уж где рут сертификт лежит - не сливайте 
1 лайк
Врядли сайт называется domen.ru, но да, такие вещи нужно прятать подальше 
1 лайк
Не все проблемы можно решить увеличением железки, проверьте загрузку процессоров, если у вас равномерно загружены все ядра тогда поможет, если нет тогда у вас проблемы в других местах.