![]() |
|
[Plugin] mysql_samp for SA-MP and open.mp - Printable Version +- open.mp forum (https://forum.open.mp) +-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3) +--- Forum: Releases (https://forum.open.mp/forumdisplay.php?fid=13) +---- Forum: Plugins (https://forum.open.mp/forumdisplay.php?fid=32) +---- Thread: [Plugin] mysql_samp for SA-MP and open.mp (/showthread.php?tid=3822) |
mysql_samp for SA-MP and open.mp - NullSablex - 2026-03-10 mysql_samp - Um plugin MySQL escrito em Rust
Criei esse plugin porque o R41-4 parou de funcionar no meu servidor. O Problema Real Em alguns ambientes Linux modernos (Debian 13, AlmaLinux), o socket do MySQL mudou de local. O socket não está mais em Code: /tmp/mysql.sockCode: Conexão falhou — Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)O R41-4 simplesmente não consegue encontrar o socket. E pior: tem um bug chato com SSL que ninguém resolveu. O Bug de SSL Mesmo que você não esteja usando SSL, o plugin sempre reclama. Coloca a opção como desativado? Continua exigindo. É como se o plugin ignorasse completamente as opções de SSL que você passa. Basicamente, com essas limitações, o R41-4 virou inútil pra mim. Por Que Rust Resolvi fazer do zero porque: - Encontra socket em qualquer lugar (suporta caminhos customizados) - Sem libmysqlclient bagunçando tudo - SSL funciona como deveria (você ativa, ativa; desativa, desativa) - Código novo, sem bugs antigos carregados Funciona? Sim. Testei nos ambientes problemáticos e continua funcionando. Sem aquele erro de socket. Sem aquela brincadeira de SSL. Links GitHub: https://github.com/NullSablex/mysql_samp Releases: https://github.com/NullSablex/mysql_samp/releases Se alguém tá com o mesmo problema, talvez ajude. Update: mysql_samp for SA-MP and open.mp - NullSablex - 2026-05-18 MYSQL_SAMP v1.1.0 Hoje, 18/05/2026, o plugin foi oficialmente atualizado para a versão 1.1.0. Esta atualização traz melhorias significativas de arquitetura, estabilidade, compatibilidade expandida e integração completa com o novo rust-samp v3.0.0. Apesar das mudanças internas profundas, a API Pawn permanece compatível — nenhuma native foi removida ou renomeada. DESTAQUES BINÁRIO UNIVERSAL O mesmo `.so` / `.dll` agora funciona tanto no SA-MP quanto no Open Multiplayer. COMPATIBILIDADE COM OPEN MULTIPLAYER * Componente nativo (`components`) * Modo legado (`legacy_plugins`) FIM DA WORKAROUND COM SETTIMER Callbacks threaded (`mysql_query`, `mysql_pquery`) agora são despachados automaticamente através do novo sistema unificado do rust-samp v3. MYSQL_FORMAT MAIS SEGURO * Truncamento correto em UTF-8 * Preserva conteúdo válido * Warning no log * Sem abortar native em overflow VALIDAÇÃO MAIS RÍGIDA `mysql_options_set_int` agora rejeita: * Portas negativas * Portas maiores que `65535` * Timeouts negativos MELHORIAS INTERNAS * Refatoração de código * Remoção de casts inseguros * Helpers reutilizáveis para ORM * Melhor mapeamento de logs * Build migrado para `i686-pc-windows-msvc` * Testes expandidos (`93 → 113`) * CI modernizada ARQUIVOS mysql_samp.so -> Linux i686 mysql_samp.dll -> Windows i686 mysql_samp.inc -> Include único para SA-MP e Open Multiplayer OBSERVAÇÃO IMPORTANTE As opções: MYSQL_OPT_SSL MYSQL_OPT_SSL_CA já são aceitas pelas funções `mysql_options_set_*`, porém ainda não estão conectadas internamente ao driver MySQL. Atualmente as conexões continuam sendo plaintext. LINKS PLUGIN GitHub: https://github.com/NullSablex/mysql_samp Releases: https://github.com/NullSablex/mysql_samp/releases RUST SDK GitHub: https://github.com/NullSablex/rust-samp Releases: https://github.com/NullSablex/rust-samp/releases MYSQL_SAMP v1.1.0 (EN-US) Today, 05/18/2026, the plugin has officially been updated to version 1.1.0. This update brings major improvements in architecture, stability, expanded compatibility and full integration with the new rust-samp v3.0.0. Despite the deep internal changes, the Pawn API remains fully compatible — no native has been removed or renamed. HIGHLIGHTS UNIVERSAL BINARY The same `.so` / `.dll` now works on both SA-MP and Open Multiplayer. OPEN MULTIPLAYER SUPPORT * Native component mode (`components`) * Legacy mode (`legacy_plugins`) NO MORE SETTIMER WORKAROUND Threaded callbacks (`mysql_query`, `mysql_pquery`) are now automatically dispatched through rust-samp v3's unified ticking system. SAFER MYSQL_FORMAT * Proper UTF-8 truncation * Preserves valid content * Logs warnings * No more native aborts on overflow STRICTER VALIDATION `mysql_options_set_int` now properly rejects: * Negative ports * Ports larger than `65535` * Negative timeouts INTERNAL IMPROVEMENTS * Code refactoring * Unsafe casts removed * Reusable ORM helpers * Better log mapping * Build migrated to `i686-pc-windows-msvc` * Expanded tests (`93 → 113`) * Hardened CI ARTIFACTS mysql_samp.so -> Linux i686 mysql_samp.dll -> Windows i686 mysql_samp.inc -> Shared include for SA-MP and Open Multiplayer IMPORTANT NOTE The options: MYSQL_OPT_SSL MYSQL_OPT_SSL_CA are already accepted by `mysql_options_set_*`, but are not yet wired internally into the MySQL driver. Connections are currently plaintext. LINKS PLUGIN GitHub: https://github.com/NullSablex/mysql_samp Releases: https://github.com/NullSablex/mysql_samp/releases RUST SDK GitHub: https://github.com/NullSablex/rust-samp Releases: https://github.com/NullSablex/rust-samp/releases RE: mysql_samp for SA-MP and open.mp - NullSablex - 2026-08-05 ?️ mysql_samp v1.2.0
Plugin MySQL universal para SA-MP e open.mp Universal MySQL plugin for SA-MP and open.mp github.com/NullSablex/mysql_samp Quote:?? A versão 1.2.0 chegou! ? Esta é a maior atualização do mysql_samp até agora, trazendo prepared statements, transações, hashing de senhas com Argon2id, suporte completo a TLS, diversas melhorias de desempenho e importantes correções de segurança — tudo funcionando tanto no SA-MP quanto no open.mp. ✨ O que tem de novo / What's new ?️ Segurança reforçada ?? O suporte a TLS foi corrigido e agora realmente criptografa as conexões com MySQL e MariaDB. Também foi corrigida uma vulnerabilidade de SQL Injection quando o servidor utilizava NO_BACKSLASH_ESCAPES, além de diversas melhorias internas relacionadas ao gerenciamento de statements, ORM e recursos. ?? TLS support now properly encrypts MySQL and MariaDB connections. A SQL Injection issue under NO_BACKSLASH_ESCAPES was fixed, alongside several improvements to statement handling, the ORM and resource management. ? Prepared Statements ?? Agora é possível criar, reutilizar, executar e destruir prepared statements de forma nativa. Os parâmetros passam a ser enviados utilizando o protocolo binário do MySQL, aumentando a segurança e eliminando a necessidade de escape manual. ?? Native prepared statement support has been added. Parameters are now sent through MySQL's binary protocol, improving security and removing the need for manual escaping. ? Transações ?? Novo suporte a transações para executar múltiplas consultas de forma atômica, com commit e rollback conforme necessário. ?? New transaction support allows multiple queries to execute atomically with proper commit and rollback handling. ? Hash de senhas com Argon2id ?? Foram adicionadas funções assíncronas para geração e verificação de hashes utilizando Argon2id, permitindo autenticação moderna sem bloquear o servidor. ?? New asynchronous Argon2id password hashing and verification functions provide modern authentication without blocking the server. ? TLS e autenticação avançada ?? Agora também é possível utilizar certificados de cliente, chaves privadas e validação de certificados para conexões seguras. ?? Client certificates, private keys and certificate verification are now supported for secure connections. ? Configuração e consultas por arquivo ?? Novas funções permitem carregar conexões através de um arquivo mysql.ini e executar scripts SQL diretamente de arquivos. ?? New natives allow loading connections from a mysql.ini file and executing SQL scripts directly from files. ? Múltiplos Result Sets ?? Procedures e scripts SQL agora podem retornar múltiplos conjuntos de resultados acessíveis pela API de cache. ?? Stored procedures and SQL scripts can now return multiple result sets accessible through the cache API. ? Logging aprimorado ?? Rotação automática de logs, compressão em GZip, configuração por variáveis de ambiente e integração com o sistema de logging do rust-samp. ?? Automatic log rotation, GZip compression, environment-variable configuration and integration with the rust-samp logging system. ? Exemplos e documentação ?? O projeto recebeu diversos exemplos cobrindo prepared statements, transações, TLS, hashing de senhas e outros recursos, além de melhorias gerais na documentação. ?? The project now includes several examples covering prepared statements, transactions, TLS, password hashing and other features, alongside documentation improvements. ? Compatibilidade preservada ?? Nenhuma API existente em Pawn foi removida ou renomeada, tornando a atualização para a versão 1.2.0 simples e direta. ?? No existing Pawn API has been removed or renamed, making the upgrade to version 1.2.0 straightforward. ? Changelog completo / Full changelog CHANGELOG.md ? Muito mais do que novas funções / More than new features Quote:?? Além dos novos recursos, esta release representa uma grande evolução do projeto. Foram dezenas de correções, melhorias internas, reforços de segurança, documentação expandida e novos exemplos para facilitar o desenvolvimento de projetos modernos com MySQL. ?? Issues, PRs e feedback são sempre muito bem-vindos!
?? Issues, PRs and feedback are always welcome! ⭐ github.com/NullSablex/mysql_samp |