SQL-базу к SAMP обычно подключают через MySQL-плагин для сервера. Общая схема такая: ставите MySQL или MariaDB, создаете базу и пользователя, подключаете плагин в SAMP, прописываете параметры доступа в скрипте или конфиге, затем проверяете лог сервера
Точные названия функций зависят от версии плагина и модового скрипта. Поэтому копировать чужой код без проверки версии нельзя: в одном моде подключение может называться mysql_connect, в другом использовать другой API или include
Что должно быть готово
Минимальный набор:
- установлен MySQL или MariaDB
- создана база данных
- создан пользователь с паролем
- SAMP-сервер видит MySQL-плагин
- в моде подключен нужный include
- в логах нет ошибок загрузки плагина
Сначала проверьте MySQL отдельно. Если база не открывается через обычный клиент, SAMP тоже не подключится
Создать базу и пользователя
Пример для MySQL:
CREATE DATABASE samp_server CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'samp_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON samp_server.* TO 'samp_user'@'localhost';
FLUSH PRIVILEGES;
Для рабочей игры не используйте пользователя root. Создайте отдельного пользователя только для этой базы
Создать тестовую таблицу
Например, таблицу игроков:
USE samp_server;
CREATE TABLE players (
id int NOT NULL AUTO_INCREMENT,
nickname varchar(32) NOT NULL,
money int NOT NULL DEFAULT 0,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY ux_players_nickname (nickname)
);
Проверьте, что таблица появилась:
SHOW TABLES;
Подключение в SAMP-скрипте
Условный пример логики:
new MySQL:g_SQL;
public OnGameModeInit()
{
g_SQL = mysql_connect("localhost", "samp_user", "strong_password", "samp_server");
if (mysql_errno(g_SQL) != 0)
{
print("MySQL connection failed");
}
else
{
print("MySQL connected");
}
return 1;
}
Это пример принципа, а не универсальная вставка для любого сервера. Сверяйте сигнатуру функций с документацией именно вашего MySQL-плагина. У разных версий могут отличаться аргументы, обработка ошибок и callbacks
Что смотреть в логах
После запуска сервера проверьте:
- загрузился ли MySQL-плагин
- нет ли ошибки доступа к базе
- правильно ли указан host
- совпадают ли имя базы, пользователь и пароль
- не блокирует ли подключение firewall
Если MySQL стоит на той же машине, host часто localhost или 127.0.0.1. Если база на другом сервере, нужно разрешить удаленное подключение и открыть порт MySQL, но делать это нужно осторожно
Мини-практика
Создайте базу samp_server, таблицу players, добавьте тестового игрока и прочитайте его через SQL-клиент:
INSERT INTO players (nickname, money)
VALUES ('TestPlayer', 1000);
SELECT *
FROM players
WHERE nickname = 'TestPlayer';
Если этот запрос работает в MySQL-клиенте, переходите к подключению SAMP. Так вы не будете искать ошибку в скрипте, когда проблема на самом деле в базе или пользователе
Частые ошибки
- Не загружается MySQL-плагин SAMP
- Неверно указаны пользователь, пароль или имя базы
- Используется
rootвместо отдельного пользователя - Таблицы не созданы до запуска мода
- Версия include не совпадает с версией плагина
- MySQL слушает только локальные подключения, а сервер SAMP стоит на другой машине
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- Как подключить базу данных SQL к Visual Studio
- CSV в SQL: как загрузить файл в базу данных
- MySQL скачать и установить для первого SQL проекта
- Как базу данных Access сделать SQL: перенос в SQL Server без иллюзий



