Você já se deparou com a mensagem de erro mysql: unknown variable 'ssl-mode=DISABLED'
ao tentar se conectar ao seu banco de dados MySQL? Esse problema é bastante comum e geralmente acontece por causa de uma incompatibilidade entre a versão do cliente MySQL que você está usando e a flag --ssl-mode
.
Neste artigo, vamos explicar por que esse erro ocorre e, o mais importante, como resolvê-lo de forma simples.
Por que esse erro acontece?
O erro mysql: unknown variable 'ssl-mode=DISABLED'
indica que o seu cliente MySQL não reconhece a flag --ssl-mode
. Isso acontece, na maioria das vezes, por dois motivos:
- Você está usando uma versão mais antiga do cliente MySQL.
- Você está usando o MariaDB Client em vez do cliente oficial MySQL.
Embora o MariaDB seja um fork do MySQL, ele tem algumas diferenças. A flag --ssl-mode
é uma delas e o MariaDB não a suporta diretamente.
Para confirmar qual cliente você está usando, basta rodar o seguinte comando no seu terminal:
Bash
mysql --version
Se a resposta mostrar “MariaDB” em vez de “MySQL”, você encontrou o motivo do problema.
Soluções para o problema
Agora que você sabe a causa, vamos às soluções. Temos três opções principais, dependendo da sua necessidade e ambiente.
1. Mude a flag do comando (a solução mais rápida)
Se você não quer instalar outro cliente, a solução mais fácil é usar a flag --ssl=0
que é equivalente a --ssl-mode=DISABLED
no cliente MariaDB.
Basta alterar seu comando de conexão:
Bash
mysql -h 127.0.0.1 -P 3306 -u root -p --ssl=0
Essa opção é ideal para quem precisa de uma correção rápida sem fazer grandes alterações no sistema.
2. Instale o cliente oficial MySQL (para usar a flag –ssl-mode)
Se você prefere usar a flag --ssl-mode=DISABLED
, a melhor opção é remover o cliente do MariaDB e instalar o cliente oficial do MySQL.
Para isso, use os seguintes comandos:
Bash
sudo apt remove mariadb-client -y
sudo apt install mysql-client -y
Depois de instalar, o comando original com --ssl-mode
vai funcionar perfeitamente.
Bash
mysql -h 127.0.0.1 -P 3306 -u root -p --ssl-mode=DISABLED
3. Ajuste a sua aplicação (ex: Laravel)
Se o erro está acontecendo na sua aplicação (como em um projeto Laravel), você não precisa mudar o cliente no seu sistema. Basta ajustar o arquivo de configuração da aplicação para desabilitar o SSL.
No seu arquivo .env
, você pode adicionar a seguinte linha para forçar a conexão sem SSL:
DB_CONNECTION=mysql
DB_HOST=host.docker.internal
DB_PORT=3306
DB_DATABASE=meubanco
DB_USERNAME=root
DB_PASSWORD=senha
DB_OPTIONS='--ssl=0'
Se o driver que você está usando é o PDO, a configuração pode ser um pouco diferente:
DB_CONNECTION=mysql
DB_HOST=host.docker.internal
DB_PORT=3306
DB_DATABASE=meubanco
DB_USERNAME=root
DB_PASSWORD=senha
DB_ATTR_SSL_CA=null
Resumo
- Se você está usando o MariaDB Client, use a flag
--ssl=0
no seu comando. - Se você quer usar a flag
--ssl-mode
, instale o cliente oficial do MySQL. - Se o problema é na sua aplicação, ajuste o arquivo
.env
para desabilitar o SSL na string de conexão.
Com essas dicas, você poderá resolver o erro e continuar seu trabalho sem mais dores de cabeça. Qual dessas soluções funcionou para você? Deixe um comentário abaixo!