Не добавляются книги в БД

7 years 9 months ago #620 by jakut69rus
jakut69rus created the topic: Не добавляются книги в БД
Добрый день!

Ubuntu Server 16.04. Python3 из коробки, коннектор поставлен. БД sopds в Mysql создана, структура наполнена, у пользователя sopds есть полные права на работу с БД.
Запускается, ошибок не выдает.
При сканировании в логах пишется, что все ОК, книги якобы добавлены:
Warning: Spoiler! [ Click to expand ]


Но книги в БД фактически не добавляются:
Warning: Spoiler! [ Click to expand ]

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

При этом, БД физически не пуста, ибо файлы что-то да весят:
Warning: Spoiler! [ Click to expand ]

Такое ощущение, что сканировщик кладет книги в одну БД, а смотрю их наличие я в другой. Или кому-то на что-то не хватает прав.
Подскажите, куда копать?

Please Войти or Create an account to join the conversation.

  • jakut69rus
  • jakut69rus's Avatar Topic Author
  • Offline
  • Новый участник
  • Новый участник
More
7 years 9 months ago #621 by mitshel
mitshel replied the topic: Не добавляются книги в БД
В sopds.conf есть вот что:

# При установке опции single_commit = yes, данные записываемые сканером в БД коммитятся один раз при окончании сканирования
# Если single_commit = no то коммиты происходят кажды раз при добавлении книги в БД.
# Применение однократного коммита несколько ускоряет сканирование.
# По умолчанию будет считаться что single_commit=no
single_commit = yes

Таким образом все книги появятся только после окончания сканирования. Если это не устраивает, то установите single_commit =no, но при этом общее время сканирование увеличится.

Please Войти or Create an account to join the conversation.

  • mitshel
  • mitshel's Avatar
  • Offline
  • Администратор
  • Администратор
More
7 years 9 months ago #622 by jakut69rus
jakut69rus replied the topic: Не добавляются книги в БД
Большое спасибо! Мне действительно не доставало терпения подождать окончания сканирования (и внимательности посмотреть про single_commit. Через трое суток сканирования БД обработалась B)

Далее я столкнулся с другой проблемой: ошибка 500 при клике по А-Я в любой выдаче.
В лог при этом приходило:
mysql.connector.errors.ProgrammingError: 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sopds.authors.last_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Погуглив, выяснил, что начиная с версии MySQL 5.7 (а именно такая идет с Ubuntu Server 16.04 из коробки) по умолчанию установлен параметр sql_mode=only_full_group_by.
Вот тут описано:
dev.mysql.com/doc/refman/5.7/en/sql-mode...e_only_full_group_by

Решается это установкой глобального параметра из-под рутового пользователя БД:
SET GLOBAL sql_mode='';
Ну или при каждой сессии писать SET sql_mode=''; , если не хочется трогать рута.
Возможно, вам пригодится.

Please Войти or Create an account to join the conversation.

  • jakut69rus
  • jakut69rus's Avatar Topic Author
  • Offline
  • Новый участник
  • Новый участник
More
7 years 9 months ago #623 by mitshel
mitshel replied the topic: Не добавляются книги в БД
Спасибо за информацию...
Но насчет 3х суток :( - это очень долго... Скажите каков размер вашего архива с книгами и на каком оборудовании все это работает. Дело в том что мои 200Гб сканируются порядка 1,5-2х часов.

Please Войти or Create an account to join the conversation.

  • mitshel
  • mitshel's Avatar
  • Offline
  • Администратор
  • Администратор
More
7 years 9 months ago #624 by jakut69rus
jakut69rus replied the topic: Не добавляются книги в БД
168 ГБ в ZIP-архивах
Работает на домашнем "сервере" из древнего нетбука Asus EeePC (1Gb RAM, 2х1,6 GHz Intel Atom CPU)
Архив лежит на внешнем HDD, на котором, по историческим причинам, NTFS, так что при сканировании бОльшая часть времени - это простой в ожидании ввода вывода через NTFS-3g. В принципе, ничего страшного - свои основные обязанности сервер во время сканирования исправно выполняет, так что длительное сканирование для меня не проблема)

Please Войти or Create an account to join the conversation.

  • jakut69rus
  • jakut69rus's Avatar Topic Author
  • Offline
  • Новый участник
  • Новый участник
More
7 years 8 months ago - 7 years 8 months ago #636 by ll23
ll23 replied the topic: Не добавляются книги в БД

jakut69rus wrote: Решается это установкой глобального параметра из-под рутового пользователя БД:
SET GLOBAL sql_mode='';
Ну или при каждой сессии писать SET sql_mode=''; , если не хочется трогать рута.
Возможно, вам пригодится.

Если сделать так, то значение глобальной переменной не сохраняется при перезагрузке mysql. После перезагрузки sql_mode опять получит only_full_group_by.

Для присвоения нужного значения переменной при загрузке можно создать /etc/mysql/conf.d/disable_only_full_group_by.cnf в котором прописать:
[mysqld]
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
После чего все будет работать после перезагрузок системы.
Last Edit: 7 years 8 months ago by ll23.

Please Войти or Create an account to join the conversation.

  • ll23
  • ll23's Avatar
  • Offline
  • Новый участник
  • Новый участник
More
Time to create page: 0.177 seconds