Categories
Banco de dados Tutoriais

Como resolver o erro The used command is not allowed with this MySQL version

Como lidar e prevenir o ERROR 1148 (42000): The used command is not allowed with this MySQL version quando você tenta importar arquivos locais com a declaração LOAD DATA LOCAL INFILE no MySQL.

No MySQL, esta mensagem de erro está associada à tentativa de tentar importar um arquivo texto para dentro de uma tabela, no banco de dados.
A mensagem de erro ERROR 1148 (42000): The used command is not allowed with this MySQL version, informa que a declaração (comando) LOAD DATA LOCAL INFILE … não é permitida pela sua versão do MySQL.
Se tudo estiver bem no seu sistema, você pode estar esbarrando em uma limitação imposta pelo servidor de banco de dados e/ou no cliente.
Tente as soluções propostas abaixo.

Inicie o MySQL com a habilidade de carregar arquivos locais

A opção --local-infile inicia o cliente MySQL com a capacidade ativa de carregar arquivos locais com a declaração LOAD DATA INFILE.
A opção deve vir acompanhada de um valor lógico:

  • 0, para desligar e
  • 1, para ligar.

Veja um exemplo explícito de uso da opção, para ativar local-infile:

mysql -u root -p --local-infile=1

Se você não usar valor algum, o padrão é habilitar o LOCAL.
Se o seu servidor não tiver suporte ao LOCAL, esta opção não terá efeito algum.

Habilite o LOCAL INFILE dentro da sessão MySQL

Para não ter que sair de dentro do cliente do banco de dados, você pode ativar ou desativar a opção na linha de comando do MySQL. Use o comando SET:

SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)

Novamente, se o servidor estiver com esta opção desabilitada, esta solução não adiantará.

Altere a configuração no servidor

mysql config local infile true
Clique para ampliar

Inicie o serviço mysqld com a opção LOCAL-INFILE=TRUE ativada, para dar suporte ao LOCAL no seu servidor MySQL.
Para iniciar o servidor mysqld com a opção ativada, use o seguinte comando:

sudo mysqld --local-infile

Para desligar, use o seguinte comando:

sudo mysqld --verbose --skip-local-infile

Poupe tempo e inclua as configurações no my.cnf

Se você ainda não conhece o my.cnf e não sabe o quanto ele pode lhe ser útil, leia o artigo Use o arquivo de configuração MY.CNF para iniciar mais fácil e rápido sua sessão no MySQL.
Para incluir as configurações pro mysql (cliente) e pro mysqld (servidor), edite o my.cnf:

[mysqld]
...
local-infile=1
[mysql]
...
local-infile=1

A seguir, reinicie o servidor:

sudo service mysql stop
sudo service mysql start

Fonte: http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.