Найти в Дзене

Ошибки mysql при восстановлении резервной копии и их решение

Оглавление

1. Fatal error: Uncaught mysqli_sql_exception: Invalid default value for 'DATE_MODIFY'

Заменить

`DATE_MODIFY` datetime DEFAULT CURRENT_TIMESTAMP

на

`DATE_MODIFY` datetime DEFAULT current_timestamp()

Команда для замены по всему файлу через терминал

sed -i 's/datetime DEFAULT CURRENT_TIMESTAMP/datetime DEFAULT current_timestamp()/g' ./filename.sql

2. Fatal error: Uncaught mysqli_sql_exception: BLOB, TEXT, GEOMETRY or JSON column 'CORRECTION_PAYMENT' can't have a default value

Заменить

`CORRECTION_PAYMENT` text DEFAULT ''

на

`CORRECTION_PAYMENT` text

Команда для замены по всему файлу через терминал

sed -i "s/text DEFAULT '',/text,/g" ./filename.sql

3. Fatal error: Uncaught mysqli_sql_exception: Invalid default value for 'TIMESTAMP_X' in

Заменить

`TIMESTAMP_X` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

на

`TIMESTAMP_X` datetime NOT NULL DEFAULT current_timestamp()

Команда для замены по всему файлу через терминал

sed -i "s/NOT NULL DEFAULT '0000-00-00 00:00:00'/NOT NULL DEFAULT current_timestamp()/g" ./filename.sql

sed -i "s/NOT NULL DEFAULT '3000-01-01 00:00:00'/NOT NULL DEFAULT current_timestamp()/g" ./filename.sql

Или можно выполнить такой запрос

sed -i "s/0000-00-00/2024-01-01/g" ./filename.sql