Page 1 of 2

конверт в InnoDB

Posted: Mon Oct 04, 2021 9:51 pm
by antero
Build 202110041758

По рекомендации скрипта попросил админов сконвертировать таблицы rot_* в InnoDB, они отписали:
При конвертировании таблицы rot_cell_data, rot_page_items, rot_comments, rot_users в Innodb
возникла ошибка
ERROR 1067 (42000) at line 1: Invalid default value for 'date'

Ошибка возникает так как есть параметры
NO_ZERO_IN_DATE, NO_ZERO_DATE в sql_modes

mysql> show variables like 'sql_mode';
+---------------+------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+------------------------------------------------------------------------------------------------------------------------+
| sql_mode | STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |

Исходя из документации MySQL https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

"Изменение режима SQL сервера после создания и вставки данных в многораздельные таблицы может вызвать серьезные изменения в поведении таких таблиц и может привести к потере или повреждению данных. Настоятельно не рекомендуется менять режим SQL после создания таблиц, использующих определяемое пользователем разделение."
Они интересуются могут ли изменить sql_modes.

Re: конверт в InnoDB

Posted: Tue Oct 05, 2021 3:55 am
by admin
1 ERROR 1067 (42000) at line 1: Invalid default value for 'date'

на какой конкретно таблице?

2 можно менять, если что-то не будет работать - говорите, поправим
но сначала хотелось бы разобраться с датой что б такой проблемы не возникало на других серваках, мало ли как будет мускл настроен там

Re: конверт в InnoDB

Posted: Tue Oct 05, 2021 3:39 pm
by antero
1 На таблицах rot_cell_data, rot_page_items, rot_comments, rot_users

Re: конверт в InnoDB

Posted: Tue Oct 05, 2021 4:30 pm
by admin
проверил на rot_comments - там дефолтное значение есть
какое у вас стоит?

Re: конверт в InnoDB

Posted: Tue Oct 05, 2021 4:30 pm
by admin
можно просто explain таблицы

Re: конверт в InnoDB

Posted: Wed Oct 06, 2021 12:13 am
by antero
ERROR 1067 (42000) at line 1: Invalid default value for 'reg_date'

mysql> describe rot_users;
+----------+--------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------------------+----------------+
| user_id | int(11) | NO | PRI | NULL | auto_increment |
| email | varchar(50) | NO | MUL | NULL | |
| username | varchar(255) | NO | | NULL | |
| password | varchar(255) | NO | | NULL | |
| reg_code | varchar(20) | NO | | NULL | |
| reg_date | datetime | NO | | 0000-00-00 00:00:00 | |
| status | tinyint(4) | NO | | 0 | |
+----------+--------------+------+-----+---------------------+----------------+

Re: конверт в InnoDB

Posted: Wed Oct 06, 2021 5:10 am
by admin
спасибо, добавил в ап изменения что б работало и с такими настройками базы

Re: конверт в InnoDB

Posted: Wed Oct 06, 2021 11:44 am
by antero
Обновился до 202110060810, админы пишут, что опять ошибки:
# find /var/db/mysql/basename/ -name "rot_*.MYD" | sed 's/.MYD//' | awk -F "/" '{print "echo "$5,$6"\nmysql "$5" -e \"""ALTER TABLE",$6,"ENGINE=InnoDB;\""""}'|sh
basename rot_cell_data
ERROR 1292 (22007) at line 1: Incorrect datetime value: '0000-00-00 00:00:00' for column 'date' at row 1

Re: конверт в InnoDB

Posted: Wed Oct 06, 2021 2:39 pm
by admin
что говорит describe таблицы? может это старая ошибка то

Re: конверт в InnoDB

Posted: Thu Oct 07, 2021 7:53 am
by antero
"DESCRIBE rot_cell_data"
+------------+----------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------------------+-------+
| show_place | int(11) | NO | PRI | 0 | |
| page_id | int(11) | NO | PRI | 0 | |
| clicks | int(11) | NO | | 0 | |
| ctr | float | NO | | 0 | |
| cell_ctr | float | NO | | 0 | |
| date | datetime | NO | | 2020-01-01 01:01:01 | |
+------------+----------+------+-----+---------------------+-------+