Conectando o gamemode ao MySQL com o plugin MySQL
Este é o passo a passo para conectar o gamemode ao banco usando o plugin MySQL (série R41 e posteriores, de pBlueG), o mais usado na comunidade.
1. Instale o plugin
- Baixe a versão compatível com o open.mp no repositório oficial;
- Coloque o
.soemplugins/e o includea_mysql.incna pasta de includes; - Declare o plugin na configuração do servidor;
- Algumas versões exigem bibliotecas adicionais (como a libmysqlclient). Leia o README.
2. Conecte no OnGameModeInit
#include <open.mp>
#include <a_mysql>
new MySQL:Banco;
public OnGameModeInit()
{
new MySQLOpt:opcoes = mysql_init_options();
mysql_set_option(opcoes, AUTO_RECONNECT, true);
Banco = mysql_connect("host", "usuario", "senha", "banco", opcoes);
if (Banco == MYSQL_INVALID_HANDLE || mysql_errno(Banco) != 0)
{
print("[MySQL] Falha na conexão. Encerrando.");
SendRconCommand("exit");
return 1;
}
mysql_set_charset("utf8mb4", Banco);
print("[MySQL] Conectado com sucesso.");
return 1;
}
Os nomes das opções e funções podem variar entre versões do plugin. Consulte o wiki da versão que você usa.
3. Feche ao desligar
public OnGameModeExit()
{
mysql_close(Banco);
return 1;
}
Salve os dados dos jogadores antes de fechar a conexão.
4. Não deixe a senha no código
Colocar a senha do banco no .pwn é arriscado: ela vai parar no Git, no Discord da equipe e em backups. Uma alternativa suportada pelo plugin é o arquivo mysql.ini, lido com mysql_connect_file():
hostname = localhost
username = usuario
password = senha_forte
database = meuservidor
auto_reconnect = true
Mantenha esse arquivo fora do controle de versão.
5. Registre os erros
Implemente o callback de erro do plugin (OnQueryError) para registrar consultas que falharam, com o código do erro e o SQL. Isso salva horas de depuração.
Problemas comuns
- Access denied: usuário, senha ou host incorretos, ou falta de permissão no banco;
- Can't connect: host ou porta errados, ou o MySQL não aceita a conexão daquele IP;
- Acentos quebrados: charset diferente entre tabelas, conexão e gamemode.
Hospede seu servidor com a VittHost
Os planos OPENMP-BR da VittHost já incluem MySQL, prontos para conectar ao seu gamemode. Servidores no Brasil, painel Pterodactyl, proteção DDoS, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.