Это вариант ответа Teudimundo , который работает со старыми версиями MySQL, где функции Base64 недоступны:
mysql -e "update mytable set col = x'$(xxd -p image.png | tr -d \\n)' where ..."
Хитрость заключается в том, чтобы использовать xxd -p
для преобразования двоичного файла в обычный hexdump:
$ xxd -p /usr/share/font-manager/data/blank.png
89504e470d0a1a0a0000000d4948445200000040000000400806000000aa
6971de000000274944415478daedc1010d000000c220fba77e0e37600000
00000000000000000000000000c0bd0040400001ee1dbb2f000000004945
4e44ae426082
, затем с помощью tr -d \\n
удалите символы новой строки и, наконец, внедрите результат в строковый литерал hexdump, специфичный для MySQL: x'...'