MySQL é um sistema de gerenciamento de banco de dados (SGBD), gratuito e livre. Criado inicialmente em 1995, foi sofrendo evoluções com o tempo, e é atualmente a plataforma mais utilizada no mundo. Trata-se de um serviço estável, seguro e confiável. Uma ferramenta bastante poderosa. O MySQL foi criado por David Axmark e Michael Widenius, dois engenheiros da Suécia. Uma pergunta frequente dos nossos clientes é o que é MySQL, e para que ele serve.
WordPress, Magento, Woocommerce e Prestashop são exemplos de aplicações que fazem uso do MySQL.
Por exemplo, um servidor web (por exemplo, o Apache), acessa o banco de dados MySQL. Ele solicita consultas, inserção de dados e exclusão de dados. Por sua vez, o MySQL encaminha esses pedidos e faz toda a gestão interna dos dados. Por fim, o MySQL devolve ao servidor web os dados solicitados.
Na rede, o MySQL atende na porta 3306 — o canal por onde as aplicações conversam com o banco.
Conteúdo
Quem usa MySQL
Dizer que é “o mais usado do mundo” fica mais concreto com nomes: Facebook, YouTube, Netflix, Uber, Airbnb, Booking.com e Shopify rodam MySQL em alguma camada da operação. O WordPress — que sustenta boa parte da web — depende dele por padrão, assim como WooCommerce, Magento, PrestaShop, Moodle e Drupal.
Isso importa para quem está escolhendo: um banco usado em escala por empresas desse porte tem documentação abundante, comunidade grande e problemas conhecidos com soluções publicadas.
MySQL e MariaDB: qual você está usando?
Vale começar por uma confusão que atinge quase todo mundo com site hospedado: é bem provável que você use MariaDB achando que usa MySQL.
Em 2009, quando a Oracle comprou a Sun Microsystems — e com ela o MySQL —, os criadores originais lançaram um fork chamado MariaDB, mantido sob licença livre. O nome é uma homenagem à filha de Michael Widenius, um dos fundadores; o “My” do MySQL vem da outra filha dele.
Desde então os dois evoluíram em direções próprias, mas continuam largamente compatíveis. O MariaDB usa a mesma linguagem SQL, os mesmos comandos, o mesmo phpMyAdmin e a mesma porta 3306. Para quem cria um banco pelo painel de hospedagem e instala um WordPress, a experiência é idêntica.
A maioria das hospedagens com cPanel roda MariaDB, e a interface continua chamando tudo de “MySQL” — daí a confusão. Nosso artigo sobre o MariaDB detalha as diferenças.
| MySQL | MariaDB | |
|---|---|---|
| Quem mantém | Oracle | Fundação MariaDB, comunidade aberta |
| Licença | Versão livre e versão paga (Enterprise) | Inteiramente livre |
| Motores de armazenamento | InnoDB como opção principal | Vários, incluindo Aria e MyRocks |
| Comandos SQL | Praticamente idênticos — o que você aprende num serve no outro | |
| Na hospedagem | Ambos aparecem como “MySQL” no painel | |
Para um site comum, tanto faz. A escolha entre os dois só passa a importar em aplicações que dependem de recursos específicos de um deles — e, nesse caso, a documentação da aplicação costuma dizer qual usar.
O que é e como ele armazena os dados ?
Basicamente, temos a seguinte hierarquia: em primeiro, temos o sistema de gestão MySQL. Em segundo lugar, temos os bancos de dados. E em terceiro lugar, temos as tabelas de dados.
As tabelas de dados armazenam, por exemplo, um cadastro dos clientes. Nome, telefone, e-mail, etc. Ou então, armazenam uma lista de produtos de uma loja virtual. Produto, preço, cor, etc.
Um banco de dados contém um conjunto de tabelas dentro dele. Assim, o banco de dados possui atributos de segurança, controle de acesso, funções de backup, entre outros.
Dessa forma, o sistema de gestão (MySQL), controla todos os bancos de dados. Ele também controla toda comunicação externa com outros servidores que realizam consultas e operações com os dados.
Quais são os comandos de MySQL mais comuns ?
O MySQL faz uso de SQL (Structured Query Language). Trata-se de uma linguagem universal para consultas e operações em banco de dados. Assim, a estrutura de SQL é bastante parecida entre os bancos de dados mais comuns (MySQL, SQL Server, Oracle, PostgreeSQL). Afinal, o que é MySQL e o que posso fazer com ele ? A resposta é: ele serve para armazenar os dados de seu site ou sua empresa, de forma segura e organizada.
Os comandos mais comuns de SQL são CONNECT, SELECT, INSERT, UPDATE e DELETE. Por eles, podemos realizar consultas, inserir dados, atualizar e apagar. Assim, há ainda outros comandos mais avançados, para criação de rotinas automáticas, índices, concessão de permissões, etc.
Existem ferramentas de gerenciamento que facilitam (e muito) a nossa vida. Elas permitem gerenciar um banco de dados MySQL sem precisar decorar estes comandos. Dessa forma, elas são o phpMyAdmin, que funciona via web, e o Heidi SQL e DBeaver, que funcionam em desktop.
- CONNECT é o comando usado para estabelecer a primeira conexão com o banco de dados. Antes de realizar qualquer consulta, é necessário fazer a conexão. Neste artigo, explicamos como conectar ao MySQL usando o PHP.
- SELECT é utilizado para realizar uma consulta ao banco de dados. Por uma consulta, podemos escolher quais dados queremos trazer (filtros). Por exemplo, com o SELECT podemos consultar clientes cadastrados no banco.
- INSERT é usado para inserir dados no banco. Ou seja, criar um novo registro no banco de dados. Por exemplo, com ele podemos inserir o cadastro de um novo cliente.
- UPDATE é o comando usado para atualizar dados no banco. Por exemplo, quando queremos alterar o telefone de contato de um cliente cadastrado.
- DELETE é usado para apagar dados. Por exemplo, quando quisermos apagar o cadastro de um cliente.
Gerenciamento de dados no MySQL
O MySQL é um banco de dados relacional que permite armazenar, gerenciar e consultar dados de forma eficiente. Para trabalhar com dados no MySQL, é necessário criar tabelas, inserir, atualizar e excluir dados. A seguir, vamos discutir esses conceitos em detalhes. Assim, agora veremos aplicações dos comandos citados anteriormente.
- Criação de tabelas:
Antes de inserir dados no MySQL, é necessário criar uma tabela para armazená-los. A criação de uma tabela envolve definir os nomes das colunas, os seus tipos de dados e as restrições de integridade. Dessa forma, a sintaxe para criar uma tabela no MySQL é a seguinte:
CREATE TABLE nome_da_tabela (
coluna1 tipo_de_dado,
coluna2 tipo_de_dado,
coluna3 tipo_de_dado);
Por exemplo, a seguir está o código SQL para criar uma tabela de clientes:
CREATE TABLE clientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(50),
email VARCHAR(50),
telefone VARCHAR(15),
endereco VARCHAR(100)
);
- Inserção de dados:
Após criar uma tabela, podemos inserir dados nela usando a instrução INSERT. A seguir, vamos mostrar um exemplo de como inserir vários tipos dados na tabela de clientes criada anteriormente:
INSERT INTO clientes (nome, email, telefone, endereco)
VALUES ('João', 'joao@email.com', '1234567890', 'Rua Exemplo 123');
- Atualização de dados:
Para atualizar dados em uma tabela, é possível usar a instrução UPDATE. Assim, vamos mostrar um exemplo de como atualizar o e-mail de um cliente:
UPDATE clientes
SET email = 'joão@email.com.br'
WHERE id = 1; - Exclusão de dados:
Para excluir dados de uma tabela, é possível usar a instrução DELETE. A seguir, vamos mostrar um exemplo de como excluir um cliente:
DELETE FROM clientes
WHERE id = 1;
Além dessas instruções básicas, o MySQL oferece muitas outras funções e recursos para gerenciar dados, como a capacidade de fazer consultas e filtros, criar índices, usar ordenação, funções de agregação e muito mais.
Dessa forma, o MySQL é um banco de dados poderoso e versátil que oferece muitas ferramentas para gerenciar e manipular dados de forma eficiente. Ao dominar as instruções básicas de criação de tabelas, inserção, atualização e exclusão de dados, é possível trabalhar com dados no MySQL de forma eficiente e segura.
InnoDB ou MyISAM: os motores de armazenamento
Uma parte do MySQL que passa despercebida até dar problema: cada tabela é gravada em disco por um “motor de armazenamento”, e a escolha dele muda o comportamento do banco.
O MySQL delega ao motor as operações de baixo nível — ler dados, manter índices, gerenciar cache. Existem vários, mas na prática dois importam:
InnoDB é o padrão desde a versão 5.5.5, e a escolha certa em praticamente todos os casos. Ele oferece:
- Transações — um conjunto de operações que só se confirma se todas derem certo. Se o servidor cair no meio, nada fica pela metade
- Chaves estrangeiras — as relações entre tabelas que o banco garante de verdade
- Bloqueio por linha — enquanto um usuário edita um registro, os outros continuam trabalhando nos demais
- Recuperação após falha — o banco se reconstrói sozinho depois de uma queda
MyISAM é o motor antigo, anterior ao InnoDB. Não tem transações, não tem chaves estrangeiras, e bloqueia a tabela inteira a cada escrita — o que, num site com movimento, cria fila. Também é mais suscetível à corrupção quando o servidor cai.
Sites criados há muitos anos, ou migrados de servidores antigos, às vezes ainda têm tabelas em MyISAM — e o dono não sabe. O sintoma é lentidão em horário de pico e mensagens de tabela corrompida depois de uma queda. Você verifica no phpMyAdmin: selecione o banco e olhe a coluna Tipo na listagem das tabelas. A conversão para InnoDB é possível e costuma resolver, mas faça backup antes, porque é operação irreversível.
Como instalar o MySQL
O MySQL já vem pre-instalado em servidores de hospedagem com cPanel (que é o caso da Homehost). Portanto, você também pode instalar o MySQL em seu servidor pessoal. Acesse a página oficial que mostra na imagem abaixo, acesse informações para instalar e muito mais.
Visite esta página de downloads no site oficial do MySQL. Sua instalação manual normalmente requer algumas configurações específicas.
Qual versão do MySQL usar
A versão importa mais do que parece, e não só por recursos novos — versões antigas param de receber correções de segurança.
- MySQL 5.7 chegou ao fim da vida em outubro de 2023. Não recebe mais atualizações, nem de segurança, e não deveria estar em produção
- MySQL 8.0 é a versão mais difundida hoje, e trouxe grandes melhorias de performance, suporte nativo a JSON e um dicionário de dados transacional
- MySQL 8.4 LTS é a versão de suporte estendido atual, indicada para quem prefere estabilidade a novidade
Como saber a sua versão: no phpMyAdmin, ela aparece na página inicial, no painel da direita. Pelo terminal, o comando é mysql --version. Se aparecer “MariaDB” no resultado, é o fork — e a numeração é diferente.
As 7 melhores práticas
A seguir, serão discutidas algumas das melhores práticas para trabalhar com o MySQL:
- Utilizar índices: os índices são uma das ferramentas mais poderosas do
MySQLpara melhorar o desempenho de consultas, permitindo que o banco encontre os dados rapidamente, sem ter que percorrer toda a tabela. - Evitar a utilização de colunas desnecessárias: ter cuidado ao definir as colunas em uma tabela, pois isso pode afetar o desempenho do banco de dados.
- Utilizar o esquema de backup adequado: ter um plano de backup adequado para garantir que os dados do banco de dados sejam preservados em caso de falhas ou corrupção de dados.
- Escolher o tipo certo para cada coluna de texto: use
VARCHARcom tamanho dimensionado para textos curtos — nomes, e-mails, títulos. ReserveTEXTeBLOBpara conteúdos realmente longos, porque eles são armazenados fora da linha da tabela e tornam as consultas mais lentas. Um campo de e-mail declarado comoTEXTfunciona, mas custa performance sem necessidade. - Utilizar os tipos de dados adequados: É importante utilizar os tipos de dados adequados para cada coluna.
- Utilizar a codificação adequada: É importante utilizar a codificação adequada para garantir que os dados sejam armazenados corretamente e sejam compatíveis com outros sistemas. Por exemplo, é recomendável utilizar a codificação UTF-8 para garantir que os dados em diferentes idiomas sejam armazenados corretamente.
- Utilizar o esquema de segurança adequado: É importante ter um plano de segurança adequado para garantir que os dados do banco de dados sejam protegidos contra acessos não autorizados e definir permissões de acesso adequadas para cada usuário.
Em resumo, devemos seguir as melhores práticas ao trabalhar com o MySQL para garantir que os dados estejam armazenados de forma segura e eficiente e para garantir um desempenho ótimo do banco de dados.
Problemas comuns
Os dois erros mais frequentes em sites que usam MySQL são a falha de conexão e a corrupção de tabelas. No WordPress, a falha de conexão produz uma mensagem específica — nosso guia sobre erro ao estabelecer uma conexão com o banco de dados explica as seis causas possíveis e como identificar cada uma.
Um terceiro, específico do português, é a acentuação quebrada — quando ção vira ção depois de uma exportação. Nosso guia sobre acentuação no MySQL explica por que acontece e como corrigir. E se o problema for no ambiente local, o erro MySQL shutdown unexpectedly no XAMPP tem guia próprio.
Perguntas frequentes
O que é MySQL?
É um sistema de gerenciamento de banco de dados relacional (SGBD), gratuito e de código aberto, criado em 1995. Ele armazena informações em tabelas relacionadas entre si e responde a consultas feitas em linguagem SQL. É o banco de dados mais usado em aplicações web — WordPress, WooCommerce, Magento e PrestaShop dependem dele.
MySQL é a mesma coisa que SQL?
Não, e essa é a confusão mais comum. SQL é a linguagem usada para consultar e manipular bancos de dados relacionais — comandos como SELECT, INSERT e UPDATE. MySQL é um dos programas que entendem essa linguagem. É como a diferença entre o português e uma pessoa que fala português: outros bancos, como PostgreSQL, Oracle e SQL Server, também usam SQL.
Qual a diferença entre MySQL e MariaDB?
O MariaDB é um fork do MySQL, criado em 2009 pelos desenvolvedores originais depois que a Oracle comprou o MySQL. Os dois usam a mesma linguagem SQL e são compatíveis na maior parte dos casos. As diferenças estão na licença (o MariaDB é inteiramente livre), nos motores de armazenamento disponíveis e no ritmo de desenvolvimento. A maioria das hospedagens com cPanel roda MariaDB, mesmo chamando de “MySQL” no painel.
O que é InnoDB e por que ele importa?
É o motor de armazenamento padrão do MySQL desde a versão 5.5.5 — a parte que efetivamente grava os dados em disco. Ele oferece transações, chaves estrangeiras, bloqueio por linha e recuperação automática após falhas. O motor antigo, MyISAM, não tem nada disso e bloqueia a tabela inteira a cada escrita, o que gera lentidão em sites com movimento.
Qual versão do MySQL devo usar?
A 8.0 ou a 8.4 LTS. A versão 5.7 chegou ao fim da vida em outubro de 2023 e não recebe mais correções de segurança — se o seu servidor ainda usa, vale atualizar. Você verifica a versão na tela inicial do phpMyAdmin, ou pelo comando mysql --version no terminal.
Qual é o preço do MySQL?
A versão Community é gratuita e de código aberto — é a usada em praticamente toda hospedagem. Existe também uma edição Enterprise paga, mantida pela Oracle, com recursos adicionais voltados a grandes corporações. Para um site comum, a versão gratuita atende integralmente.
Posso armazenar imagens e arquivos no MySQL?
Tecnicamente sim, usando campos do tipo BLOB — mas não é recomendado. Arquivos binários inflam o banco, tornam os backups pesados e degradam a performance das consultas. A prática correta é guardar os arquivos em disco e armazenar no banco apenas o caminho até eles. É assim que o WordPress funciona: as imagens ficam em wp-content/uploads e o banco guarda só a referência.
Como acesso o banco de dados do meu site?
Pelo phpMyAdmin, disponível no painel de controle da hospedagem. Ele abre o banco no navegador e permite navegar pelas tabelas, editar registros, exportar backups e rodar comandos SQL, sem instalar nada. Para acesso pelo computador, ferramentas como HeidiSQL e DBeaver se conectam ao servidor diretamente — nesse caso é preciso liberar o acesso remoto no painel.
Meu site parou e diz que não consegue conectar ao banco. O que faço?
Na maioria dos casos, as credenciais de acesso ao banco estão incorretas no arquivo de configuração do site — algo que costuma acontecer depois de uma migração ou troca de senha. Nosso guia sobre erro ao estabelecer uma conexão com o banco de dados cobre as seis causas possíveis, em ordem de frequência.
Preciso saber SQL para ter um site?
Não. Se você usa WordPress, Magento ou qualquer plataforma pronta, a aplicação cuida de toda a comunicação com o banco — você nunca escreve um comando. Saber SQL passa a ser útil quando você precisa fazer uma consulta específica, corrigir dados em massa ou desenvolver um sistema próprio.
Todo plano da Homehost já vem com bancos de dados, phpMyAdmin no painel para gerenciar tudo pelo navegador, e InnoDB configurado por padrão. Armazenamento NVMe, servidor no Brasil e backup automático — a partir de R$ 7,90/mês.
Ver planos de hospedagemConclusão
O MySQL é a peça invisível de boa parte da web: ele guarda o conteúdo, e o site apenas o exibe. Se você tem um WordPress, uma loja em WooCommerce ou qualquer sistema com painel administrativo, há um banco MySQL trabalhando por trás — provavelmente sem você nunca ter aberto o phpMyAdmin.
Três coisas valem levar deste guia. A primeira é que SQL é a linguagem e MySQL é o programa que a interpreta — confundir os dois é o erro mais comum de quem está começando. A segunda é que, se o seu site está numa hospedagem com cPanel, é bem provável que você use MariaDB, o fork criado pelos desenvolvedores originais, que funciona praticamente igual. E a terceira, a mais prática: o InnoDB é o motor certo, e tabelas antigas em MyISAM são fonte silenciosa de lentidão e corrupção.
Para quem só quer ter um site no ar, nada disso exige ação — a hospedagem entrega o banco pronto e a plataforma cuida do resto. Mas entender o que está por baixo ajuda quando algo dá errado: o conteúdo do seu site mora ali, e é por isso que backup sem o banco não é backup.