Согласно документации , файл должен находиться в каталоге, указанном в secure_file_priv
.Итак, я предлагаю вам создать каталог c:/mysql-uploads
, обновить secure_file_priv
, указав туда и поместить файл в этот каталог.Я цитирую документы:
Если файл не существует или не может быть прочитан, потому что одно из предыдущих условий не выполняется, функция возвращает NULL.
ОБНОВЛЕНИЕ
Приведенное выше решение применимо только в том случае, если файл расположен на хосте базы данных.Поскольку вы используете AWS RDS, у вас нет доступа к локальной файловой системе, поэтому вы не можете копировать файлы на хост базы данных независимо от того, какое значение установлено для secure_file_priv
.Боюсь, вам придется использовать клиентское приложение, которое будет вставлять содержимое / BLOB-объекты, используя методы на стороне клиента (например, JDBC).
Это можно сделать, создав Connection
и PreparedStatement
используйте setBinaryStream
, чтобы загрузить поток файлов в большой двоичный объект, а затем вызовите executeUpdate
.Полный пример:
Connection conn = DriverManager.getConnection(url,username,password);
String updateSQL = "INSERT INTO table VALUES(?,?)"
PreparedStatement pstmt = conn.prepareStatement(updateSQL);
File file = new File(filename);
FileInputStream input = new FileInputStream(file);
pstmt.setString(1, "c1");
pstmt.setBinaryStream(2, input);
pstmt.executeUpdate();