BLOB в таблице базы данных MySQL заставляет PHPMyAdmin выдавать внутреннюю ошибку сервера 500 - PullRequest
0 голосов
/ 15 октября 2019

У меня есть база данных MySQL с таблицей, которая содержит большие двоичные объекты (тип LONGBLOB для MySQL). Я вставляю эти BLOB в таблицу с помощью SQLAlchemy (версия 1.3.9, Python 3.6.8 Anaconda). BLOB являются результатом массива Numpy (версия 1.17.2) размером (1216,1216,3), который представляет изображение.

Чтобы преобразовать эти изображения в байты, я использую метод Numpy .tobytes()и затем используйте SQLAlchemy для фиксации его в базе данных. После проверки конкретной таблицы в моей базе данных с помощью PHPMyAdmin я получаю следующую ошибку: PHPMyAdmin Internal Server Error . Хотя он говорит, что кажется, что соединение потеряно, все остальные таблицы доступны без каких-либо проблем.

Более того, я также все еще могу получить все записи в таблице с помощью SQLAlchemy (и других библиотек),Размер BLOB-объекта составляет 8,5 МБ, что должно быть хорошо, так как LONGBLOB может содержать 4 ГБ, поэтому я предполагаю, что это не размер изображения, вызывающего проблемы.

При вставке записи SQLAlchemy показывает следующеепредупреждение: /home/aaa/.conda/envs/AAA/lib/python3.6/site-packages/pymysql/cursors.py:170: Warning: (1300, "Invalid utf8mb4 character string: '900130'") result = self._query(query)
Это то, что я пробовал Googling, но не смог найти ничего, что помогло. Сортировка базы данных и таблицы: utf8mb4_unicode_ci . Насколько я знаю, не удалось установить параметры сортировки для конкретного поля, поскольку это большой двоичный объект.

В прошлом у меня не было проблем с хранением изображений в виде больших двоичных объектов в базе данных MySQL, поэтому я впотеря на то, что делать сейчас, чтобы решить эту проблему. Неправильно ли использовать Numpy .tobytes() для получения байтов массива Numpy? Пожалуйста, сообщите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...