Mysql
 sql >> Baza danych >  >> RDS >> Mysql

BLOb:nie można odczytać wszystkich danych, ale kilka kb

Twój program jest poprawny. Jeśli rozmiar pliku jest mały, będzie działać dobrze. Jeśli używasz BLOB datatype do przechowywania danych binarnych, zmień go na LONGBLOB . Bo jeśli próbowałeś zapisać plik w BLOB pole danych, a jeśli rozmiar pliku jest większy niż maksymalny dozwolony rozmiar typu danych BLOB, zawartość zostanie obcięta i utracisz część zawartości pliku (w zależności od rozmiaru pliku). Nawet jeśli używasz LONGBLOB typ danych jest kilka rzeczy, które musisz sprawdzić. Wyjaśnię

Na stronie mysql widzimy, że maksymalny rozmiar pliku to LONGBLOB to 4 GB. Ale to zależy od wielu rzeczy. Aby przechowywać duży plik, musisz sprawdzić kilka rzeczy. Pierwsza rzecz jest w my.ini pliku, istnieje właściwość o nazwie max_allowed_packet , określa największy możliwy pakiet, który może być przesłany do lub z klienta lub serwera mysql. Powinieneś ustawić max_allowed_packet nieruchomość na wyższą wartość. I zrestartuj mysql. Niektóre systemy plików nie pozwalają na pliki 4 GB. W takim przypadku nie możesz załadować tak dużego pliku.

Myślę, że w twoim przypadku ustawienie max_allowed_packet właściwość do wyższej wartości rozwiąże problem.

Myślę, że możesz użyć następującego skryptu tworzenia tabeli

CREATE TABLE `image` (
    `id` INT(10) NULL DEFAULT NULL,
    `fs` LONGBLOB NULL,
    `filen` VARCHAR(50) NULL DEFAULT NULL
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dopasuj Regex w MySQL dla powtarzającego się słowa z warunkiem wykluczenia nawiasów

  2. Czy używanie tabeli głównej dla kolumn współdzielonych jest dobrą praktyką dla całej bazy danych?

  3. Przechowywanie wielu danych z pól wyboru w bazie danych MySQL za pomocą PHP

  4. AngularJS i Laravel 4.2 pobierają dane z wielu tablic i łączą je

  5. Uprawnienia użytkownika MySQL na współdzielonych serwerach