# MySQL no seu VPS, com controle fino de usuários

Você instala o MySQL com uma senha de root segura e depois gerencia bancos, usuários e permissões pelo painel. Você decide de onde cada usuário pode se conectar e as permissões são aplicadas na hora, sem FLUSH PRIVILEGES.

URL: https://ardumaker.com/pt/servicios/mysql/

- Usuários por host
- Permissões na hora
- Gerenciador web incluído

## É assim no painel

Capturas reais do painel da ArduMaker, não mockups.

![MySQL: MySQL no painel](https://ardumaker.com/screenshots/servicios/mysql-1.jpg)
**MySQL no painel**. Bancos de dados e usuários do serviço, a um clique.

## MySQL com sua conta e acesso seguro

Pelo Apps você instala um banco MySQL com uma conta própria, pronto para sua aplicação ou para conectar de fora.

- Cria o banco e uma conta com permissões só sobre esse banco.
- A conta exige TLS: uma conexão sem criptografia é recusada.
- Acesso externo por uma porta própria e só dos IPs que você autorizar: a 3306 não fica exposta.
- A string de conexão fica pronta para copiar, e a senha é mostrada só sob demanda.
- Você vê ao vivo de quais IPs estão conectando.

## Antes de instalar

### Use quando

- A aplicação foi feita para MySQL ou MariaDB: WordPress, Laravel, PrestaShop, Magento e muitos sistemas PHP.
- Você está migrando um sistema que já usa MySQL e não quer reescrever consultas.
- Você precisa entrar de fora com TLS e só dos IPs que autorizar.

### Não é o indicado se

- Você está começando um projeto novo sem preferência: PostgreSQL costuma entregar mais com o mesmo.
- Você só precisa de cache ou filas: isso é Redis.

### Como testar que ficou funcionando

1. **Conecte com o cliente**: mysql -h db-123.arducloud.com -P 61381 -u usuario -p --ssl-mode=REQUIRED app -e "select version();" — pede a senha e devolve a versão.
2. **Confira que a conexão é criptografada**: show session status like 'Ssl_version'; deve dizer TLSv1.2 ou TLSv1.3. A conta do app exige TLS: sem ele é recusada.
3. **Veja suas permissões**: show grants; — todas as permissões sobre o seu banco e nenhuma global. show databases; só mostra o seu.

### Dicas

- Se o seu cliente é antigo e não negocia TLS, atualize: a conta não aceita conexões sem criptografia.
- De fora só entram os IPs autorizados.
- De um app no mesmo VPS use 127.0.0.1 e não localhost: a conta é criada para esse host.
- Importar um dump grande é mais rápido pelo terminal do VPS do que pela sua máquina.
- Configure os backups do VPS antes de colocar dados de produção.

## MySQL sem o console

E com root por SSH para todo o resto.

- **Instalação segura**: Se você não definir a senha de root, uma aleatória e segura é gerada.
- **Status do serviço**: Ativo ou não, versão, porta 3306, quantidade de bancos e de usuários.
- **Bancos limpos**: Listar ocultando os do sistema, criar, excluir e ver tamanho em MB e quantidade de tabelas.
- **Usuários com controle de origem**: Só local (padrão), de qualquer host ou de uma sub-rede como 192.168.1.%.
- **Permissões claras**: ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER e mais, por banco ou sobre todos. Você vê todos os GRANT de cada usuário.
- **Mudanças na hora**: As permissões são aplicadas sem rodar FLUSH PRIVILEGES.
- **Tabelas e registros**: Listar tabelas e ver os últimos registros (até 1000) pelo painel.
- **Gerenciador web**: Grade editável, console SQL somente leitura, EXPLAIN, importação e exportação para CSV e Excel. Uma alternativa moderna ao phpMyAdmin.
- **Sem expor a 3306**: Para chegar de outro VPS seu usa-se um túnel SSH criptografado, sem regra de firewall nem lista de IPs para manter. Se precisar entrar de fora, o acesso externo opcional usa uma porta própria com TLS e só os seus IPs.
- **Root de verdade por SSH**: mysql, mysqldump, my.cnf: o servidor inteiro continua sendo seu. O painel cobre o dia a dia.

## Do zero a um banco para o seu app

1. **Instale o MySQL**: Um clique, com senha de root segura.
2. **Crie o banco**: Com o nome do seu projeto.
3. **Crie o usuário**: Local para o seu app, ou com acesso de uma sub-rede específica.
4. **Dê as permissões**: Só as necessárias, aplicadas na hora.
5. **Conecte de outro VPS**: Com um túnel SSH, o banco aparece no localhost do outro servidor sem abrir a 3306.

## Como funciona por baixo, e o que levar em conta

O que vale a pena saber antes de começar, sem letras miúdas.

- Por padrão os usuários são só locais. O acesso remoto é liberado de propósito e usuário por usuário: de qualquer host, ou restrito a uma sub-rede como 192.168.1.%.
- Mesmo liberando acesso remoto, o recomendável é não publicar a 3306: para que outro VPS use o banco existe o túnel SSH entre VPS, que o deixa no localhost do outro servidor.
- As permissões são aplicadas na hora, sem FLUSH PRIVILEGES. No detalhe de cada usuário você vê todos os GRANT dele juntos.
- Se você não definir a senha de root na instalação, uma aleatória e segura é gerada e mostrada ao terminar.
- Os nomes de usuário aceitam minúsculas, números e underline.
- Precisa de systemd e de uma base Debian ou Ubuntu. Verificado em produção no Ubuntu 22.04 e compatível com 18.04, 20.04 e 24.04.
- No Ubuntu 26.04 não está disponível: essa versão traz o MySQL 8.4, que bloqueia por padrão as contas mysql_native_password criadas pelo instalador. No 16.04 também não, porque o systemd 229 não sobe num host com cgroup v2.
- O gerenciador web precisa de Ubuntu 22.04 ou superior, porque o túnel dele se apoia em sshd_config.d.
- O banco entra no backup do VPS; se você quiser um mysqldump próprio com a sua retenção, ele se monta como tarefa agendada.
- Root real por SSH: o painel é um atalho, não uma jaula. Tudo o que ele faz com um botão você também pode fazer à mão.

## Você também pode pedir ao Claude, ChatGPT ou Cursor

Tudo o que você vê no painel o seu agente de IA pode fazer pelo servidor MCP da ArduMaker: com a sua autorização, com o alcance que você der e com cada ação auditada. [Ver o que o MCP faz](https://ardumaker.com/pt/mcp/bases-de-datos/)

## MySQL: perguntas frequentes

### Posso conectar de fora do VPS?

Sim, se você criar o usuário com host % ou com uma sub-rede. Por padrão ele só aceita conexões locais.

### Preciso rodar FLUSH PRIVILEGES?

Não. Cada mudança de permissão é aplicada sozinha.

### É uma alternativa ao phpMyAdmin?

Sim: o gerenciador web do painel tem grade editável, console SQL, EXPLAIN e importação e exportação, e vai por um túnel SSH privado, sem expor a porta.

### Como vejo quais permissões um usuário tem?

No detalhe do usuário aparecem todos os GRANT dele.

### Como conecto o MySQL de outro servidor com segurança?

Com um túnel SSH entre os seus VPS: o banco fica no localhost do outro servidor e o tráfego vai criptografado, sem publicar a 3306 nem manter listas de IPs autorizados.

### Posso restringir um usuário a uma sub-rede?

Sim. Na criação você escolhe se ele é só local, de qualquer host, ou de uma sub-rede específica como 192.168.1.%.

### Funciona no Ubuntu 26.04?

Não. O Ubuntu 26.04 traz o MySQL 8.4, que bloqueia por padrão as contas mysql_native_password criadas pelo instalador. Está verificado no 22.04 e é compatível com 18.04, 20.04 e 24.04.

### Posso continuar usando o mysqldump?

Sim, você tem root por SSH e o MySQL completo. O painel é um atalho para o dia a dia, não um substituto.

## Serviços que costumam andar juntos

Tudo roda no mesmo VPS e é gerenciado pelo mesmo painel.

- [Gerenciador de bancos de dados](https://ardumaker.com/pt/servicios/gestor-bases-de-datos/): Uma grade web para PostgreSQL e MySQL: editar linhas, SQL, EXPLAIN e importar e exportar CSV e Excel por túnel privado.
- [PostgreSQL](https://ardumaker.com/pt/servicios/postgresql/): Instale o PostgreSQL e gerencie bancos, usuários e permissões sem linha de comando.
- [Backups automáticos](https://ardumaker.com/pt/servicios/backups/): Cópia completa semanal a quente, as últimas 4 guardadas e uma cópia final ao excluir o VPS.

**MySQL pronto para o seu próximo app** Instale pelo painel de qualquer VPS. Não é um produto à parte: está no painel de qualquer VPS da ArduMaker, junto com o root real por SSH. [Ver planos](https://ardumaker.com/pt/precios/)
