Подключение к mysql в облаке яндекса

Добрый день, есть необходимость вынести базу данных в облако 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);

(!) Не тестировано

Пробовали, не получается

я так понимаю это нужно указывать перед подключением.

Вынос на отдельный сервер внутри датацентра зачастую требует очень качественного и широкого канала, а то что вы решили сделать чревато очень крупными проблемами. Надежней? Возможно. Быстрее? Очень и очень нет :slight_smile: Для клаудовых решений нужен клаудовый подход к коду, ну и как минимум понимаени того как это работает в принципе. Само по себе облако это не панацея от всех проблем, версийность базы данных очень важна, на пример с современными версиями цскарт работает не так уж и хорошо даже на локальных серверах, на удаленных же добавляются задержки в комутации + накладные расходы на шифрование. В общем идея отличная когда это 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 лайк

уж где рут сертификт лежит - не сливайте :slight_smile:

1 лайк

Врядли сайт называется domen.ru, но да, такие вещи нужно прятать подальше :slight_smile:

1 лайк

Не все проблемы можно решить увеличением железки, проверьте загрузку процессоров, если у вас равномерно загружены все ядра тогда поможет, если нет тогда у вас проблемы в других местах.