Ошибки баз данных (mysql) и методы решений

06.09.2019
Обратите внимание: при редактировании файлов баз данных сторонними программами (Sublime Text, Notepad++ и др.) всегда учитывайте кодировку в которой открывается и сохраняется .sql файл базы данных. В случае допуска ошибки могут проявляться малопредсказуемые последствия работы сайта.

Duplicate entry '1' for key 'PRIMARY'

Требуется заменить во всей базе данных INSERT INTO на REPLACE INTO.

 

Multiple primary key defined

Убедитесь, что в базе в которую производится импорт нет каких-либо данных (база должна быть полностью очищена).

 

[Bitrix\Main\DB\SqlQueryException] Mysql query error: Illegal mix of collations for operation 'UNION' (400)

Проблема с разными кодировками таблиц (collation utf8_unicode_ci и utf8_general_ci).
Требуется заменить DEFAULT CHARSET=utf8 на DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci во всей базе данных.

 

MySQL Query Error: SELECT DISTINCT BE.ID as ID ... which is not in SELECT list; this is incompatible with DISTINCT

Необходимо очистить содержимое папки /bitrix/tmp/

 

[Bitrix\Main\DB\ConnectionException] Mysql connect error [localhost]: (1045) Access denied for user '***'@'localhost' (using password: YES) (400)

Неверные данные для подключения к базе данных. Проверьте название базы данных, имя назначенного пользователя и его пароль в панели хостинга и отредактируйте данные в файлах /bitrix/php_interface/dbconn.php и /bitrix/.settings.php

 

Переменная sql_mode в MySQL должна быть пустая, текущее значение...

/bitrix/php_interface/after_connect_d7.php
добавить $connection->queryExecute("SET sql_mode=''");

/bitrix/php_interface/after_connect.php
добавить $DB->Query("SET sql_mode=''");

 

Ошибка innodb_strict_mode=ON, требуется OFF или Ошибка! Переменная sql_mode в MySQL должна быть пустая, текущее значение...

/bitrix/php_interface/after_connect.php
$DB->Query("SET sql_mode=''");
$DB->Query("SET innodb_strict_mode=0");

/bitrix/php_interface/after_connect_d7.php
$connection = Bitrix\Main\Application::getConnection();
$connection->queryExecute("SET sql_mode=''");
$connection->queryExecute("SET innodb_strict_mode=0");