BeWiki
Неофициальный справочный ресурс для клиентов хостера BeGet

Редактирование my.ini

Хочу изменить некоторые параметры сервера MySQL, отредактировав файл my.ini. Например, sql_mode. Как я могу до него добраться?

На shared-хостинге файл my.ini не изменяется под нужды определённого клиента, так как эти изменения затронут все аккаунты на сервере (коих может быть несколько сотен), и могут кому-нибудь сломать сайт, который уже настроен под текущие настройки.

Вы можете отредактировать скрипты вашего сайта, чтобы сразу после установки подключения к БД выполнялся запрос типа

SET SESSION sql_mode = '';

Ниже примеры для некоторых CMS

Bitrix

Допишите в конец файла bitrix/php_interface/after_connect.php строку вида

$DB->Query('SET SESSION variable = value');

Допишите в конец файла bitrix/php_interface/after_connect_d7.php (если такой присутствует) строку вида

$connection->queryExecute('SET SESSION variable = value');

Drupal

Файл includes/database/database.inc, строка 313 (предположительно)

Найдите констуктор класса и добавьте запрос в его конец

function __construct($dsn, $username, $password, $driver_options = array())
{
    //...
    $this->query('SET SESSION variable = value');
}

OpenCart 1.5

Найдите констуктор класса и добавьте запрос в его конец

Файл system/database/mysql.php, строка 18

mysql_query("SET SESSION variable = value", $this->link);

Файл system/database/mysqli.php, строка 19

mysql_query("SET SESSION variable = value", $this->link);

OpenCart 2

Найдите констуктор класса и добавьте запрос в его конец

Файл system/library/db/mysql.php, строка 16

mysql_query("SET SESSION variable = value", $this->link);

Файл system/library/db/mysqli.php, строка 13

mysql_query("SET SESSION variable = value", $this->link);

Подобное место для редактирования есть в любой CMS, загвоздка лишь в том, что не все переменные можно изменить в области SESSION.

На https://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.html есть табличка со всеми переменными. Если в столбце Var Scope указано Both - наш метод подходит для данной переменной.