sql >> Database teknologi >  >> RDS >> Mysql

BLOb:kan ikke læse alle data, men få kb

Dit program er korrekt. Hvis filstørrelsen er lille, fungerer den fint. Hvis du bruger BLOB datatype for at gemme de binære data, skal du ændre den til LONGBLOB . Fordi hvis du prøvede at gemme en fil i BLOB datafelt, og hvis filstørrelsen er mere end den maksimalt tilladte størrelse af BLOB-datatypen, vil indholdet blive afkortet, og du vil miste noget indhold af filen (afhænger af filstørrelsen). Også selvom du bruger LONGBLOB datatype er der nogle ting du skal tjekke. Jeg vil forklare

På mysql-webstedet kan vi se den maksimale filstørrelse på LONGBLOB er 4GB. Men det afhænger af mange ting. For at gemme store filer skal du kontrollere nogle ting. Det første er i my.ini fil, er der en egenskab kaldet max_allowed_packet , specificerer den størst mulige pakke, der kan transmitteres til eller fra en mysql-klient eller -server. Du bør indstille max_allowed_packet ejendom til en højere værdi. Og genstart mysql. Nogle filsystemer tillader ikke 4GB-filer. I så fald kan du ikke indlæse så meget stor fil.

Jeg tror i dit tilfælde indstilling max_allowed_packet ejendom til en højere værdi vil løse problemet.

Jeg tror, ​​du kan bruge følgende tabeloprettelsesscript

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


  1. Rake spec fejler de fleste tests, men skinner fungerer fint på Diaspora-kilde

  2. MySql.Data i GAC, stadig SecurityException

  3. Lagring af værdier med apostrof i databasen

  4. Brug af funktionel notation i PostgreSQL-forespørgsler i stedet for punktnotation