#mysql #mysql-workbench #sql-insert #mysql-loadfile
Вопрос:
Я пытаюсь вставить изображение в таблицу базы данных, но каждый раз оно выдает ошибку:
Изображение столбца не может быть пустым
В то время как тип данных столбца изображения не является нулевым, как вы можете ясно видеть.
Как я могу решить эту проблему?
Выполнение внутри MySQL Workbench:
Комментарии:
1. когда вы получаете нуль, это обычно указывает на то, что файл не удалось загрузить. Это может быть проблема с разрешениями.
Ответ №1:
Функция MySQL LOAD_FILE-это несколько условий, которые необходимо выполнить для успешного выполнения.
- Файл, который вы пытаетесь загрузить, должен присутствовать на том же хосте, на котором запущен сервер MySQL. Например, если ваш сервер MySQL установлен на example.com, файл должен присутствовать на example.com только.
- Необходимо указать полный путь к файлу. Итак, если ваш файл находится в домашнем каталоге пользователя, принимая имя пользователя w3r, вы должны указать ‘/home/w3r/somefile.txt’
- Пользователь, выполняющий команду, должен иметь права доступа к ФАЙЛУ. Вы можете предоставить права доступа к ФАЙЛУ пользователю, указав «ПРЕДОСТАВИТЬ ФАЙЛ по имени базы данных.* пользователю@localhost».
- Файл, о котором идет речь, должен быть доступен для чтения всеми. Если вы пытаетесь загрузить файл, которого нет в домашнем каталоге пользователя hieararchy, убедитесь, что у вас есть разрешение на чтение файла.
- Сервер MySQL имеет переменную max_allowed_packet. Файл, о котором идет речь, не должен превышать значения, указанного в этой переменной. Вы можете проверить значение max_allowed_packet с помощью «показать переменные, такие как» %max_allowed_packet%»;»; для выполнения этой команды у вас должны быть права администратора MySQL. Вы изменяете значение max_allowed_packet в файле конфигурации MySQL. Откройте свой файл my.ini или my.cnf, найдите строку max_allowed_packet=some_value и измените значение на желаемое, например, если вы хотите установить значение valle равным 50 МБ, напишите 50 МБ.
- В MySQL есть переменная secure_file_priv. Если значение этой переменной равно непустому имени каталога, загружаемый файл должен находиться в этом каталоге. Вы можете найти переменную secure_file_priv и ее значение и указать ее в своем файле конфигурации MySQL.