Gravar arquivo em um Campo BLOB (MySQL)

Galera,

Eu não sei pq raios isso ta acontecendo mas ta acontecendo, é o seguinte :

Eu to tentando ler um arquivo qualquer e gravar ele em uma base de dados MySQL estou gravando em um campo tipo BLOB, gravar eu consigo, só que ai acontece a merda, eu só consigo gravar 64KB :frowning:

Eu tento gravar arquivos com mais que 3MB e ele só grava 64KB !!!

Alguém tem alguma idéia do que pode estar acontecendo ???

[code]
Class.forName("com.mysql.jdbc.Driver");
// Cria uma Conexao a Base de Dados
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/teste");

// Prepara a Query para ser executada
PreparedStatement pstmt = con.prepareStatement("INSERT INTO arquivos (nomeArquivo, arquivo) VALUES (?,?)");

// Pega o Arquivo
File arquivo = new File("Pennywise - Alien.mp3");
InputStream arquivoInputStream = new FileInputStream(arquivo);

System.out.println(arquivo.length());

// Atualiza a query
pstmt.setString(1, arquivo.getName());
pstmt.setBinaryStream(2, arquivoInputStream, (int)arquivo.length());

// Executa a Query
pstmt.executeUpdate();

// Agora le o Arquivo da Base e Grava com outro nome !!!

PreparedStatement lerarquivo = con.prepareStatement("SELECT nomeArquivo, arquivo FROM arquivos WHERE Id = 1");
ResultSet rs = lerarquivo.executeQuery();

rs.next();

System.out.println("Nome do Arquivo : " + rs.getString("nomeArquivo"));
System.out.println("Recuperando Arquivo !!!");

// Gera o Arquivo no HD
InputStream arquivoBase = rs.getBinaryStream("arquivo");

// Cria um Buffer
byte[] buffer = new byte[32*1024]; // Buffer 32 kb

// Cria no HD o Arquivo
OutputStream arquivoHD = new FileOutputStream("teste_mp3.mp3");

// Le a quantidade permitida pelo buffer
int bytesLidos = arquivoBase.read(buffer);

// Loop ate terminar de recupar todo o arquivo
while (bytesLidos > 0){
arquivoHD.write(buffer, 0, bytesLidos);
bytesLidos = arquivoBase.read(buffer);
System.out.println("–" + bytesLidos);
}

System.out.println("Arquivo Recuperado Com sucesso : teste_mp3.mp3");[/code]