Найти в Дзене
YECHEZ о PAWN / SA-MP

Способ запуска сервера SA-MP с БД MySQL через XAMPP (не denwer)

Оглавление

Вступление

Все, кто когда-нибудь интересовался SA-MP, а именно администрированием своего сервера, сталкивались с попытками запустить интересный мод, который требует БД MySQL.

Примерно таким образом выглядит первая страница на любом сайте, где можно скачать готовый мод для сервера
Примерно таким образом выглядит первая страница на любом сайте, где можно скачать готовый мод для сервера

В этой статье будет рассматриваться пример с запуском готовой сборки Grand RP.

Mysql R39-5. Версия сервера SA-MP 0.3.7 R-2.

Так-же будут рассмотрены некоторые ошибки и их устранение.

Первым делом после скачивания мы сразу же бежим изучать интернет.

А что же такое этот MySQL, и как его запустить для моего SA-MP сервера на домашнем компьютере? И сразу натыкаемся на огромное количество уроков, где предлагают бежать и устанавливать Denwer. Я не противник denwer, но для возрастной категории игроков SA-MP этот инструмент очень сложный, ведь он изначально предназначен для выполнения множества других задач. И после этого сразу же начинают возникать проблемы и вопросы: А что? А как? А почему не работает? и т.д.

В этой статье я предлагаю использовать XAMPP.

XAMPP полностью бесплатный и простой в установке дистрибутив Apache, содержащий MariaDB, PHP и Perl
XAMPP полностью бесплатный и простой в установке дистрибутив Apache, содержащий MariaDB, PHP и Perl

На мой взгляд, он очень прост в установке и мы можем запустить phpMyAdmin всего в пару (3) кликов.

Т.к. это что-то вроде гайда, то разделю действия на шаги.

1. Запуск программы XAMPP

Окно программы XAMPP
Окно программы XAMPP

2. Запускаем модули Apache и MySQL

Нажатием на кнопки Start у модулей Apache и MySQL запускаем сервер Apache и сервер MySQL.

-4

3. Переходим в phpMyAdmin

Нажимаем на кнопку Admin у модуля MySQL. Тем самым у нас в браузере откроется новая вкладка и мы перейдём на наш локальный phpMyAdmin. Альтернативный адрес: http://localhost/phpmyadmin/

Если кнопки Admin не активны, то поищите ошибки в консоле программы, которая находится ниже. Ошибки обычно выделены красным цветом
Если кнопки Admin не активны, то поищите ошибки в консоле программы, которая находится ниже. Ошибки обычно выделены красным цветом

4. Создание БД

Дальше идёт этап загрузки БД от мода. Он одинаковый и ничем не отличается от таких же загрузок на denwer или хостингах. Если в сборке идёт готовый sql запрос на создание и наполнение БД, то просто делаем импорт. Если нет, как в нашем случае на сборке Grand, то сначала создаём пустую БД

Этап создания пустой БД
Этап создания пустой БД

5. Импорт таблиц из файла

Если была готовая база то скорее всего у нас уже создались и заполнились таблицы. В нашем же случае нужно импортировать таблицы из файла. Для этого мы выберем нашу созданную БД и в верхнем меню нажмём Импорт. В качестве файла выбираем ./Grand/database/grandbase.sql

-7

6. Ошибка при импорте

В качестве следующего шага я решил рассмотреть ошибку при импорте. Т.к. это обучающая статья, то подобное может возникнуть при запуске любой другой сборки. Мы должны быть готовы.

Ошибка при импорте запроса
Ошибка при импорте запроса

Тут нам чёрным по #ffc0cb написано, что ошибка в синтаксисе и даже указаны строчки. Решать эту проблему будем простым путём. Просто удалим лишние на мой взгляд строчки. Для этого откроем файл с запросом через Блокнот либо другой удобный нам редактор. Я предпочту Notepad++

-9
-10

Серым я выделил строчки, которые удалю. После этого сохраним файл (сочетание клавиш CTRL+S) и повторим шаг номер 5.

7. Успешный импорт

На зеленый свет - иди, на красный - стой
На зеленый свет - иди, на красный - стой

По количеству приятных зелёных галочек можно понять, что всё успешно. Так-же слева под названием нашей БД появились таблицы.

И вроде бы на этом можно и закончить, но всё-же мы доведём свой запуск сервера до конца.

8. Проверка строчек подключения запускаемого мода

Переходим в папку pawno и запускаем компилятор. Компилятор находится в директории нашей сборки ./Grand/pawno/pawno.exe

В открывшемся окне компилятора нажимаем File>Open (CTRL+O) и выбираем наш мод, который находится в папке gamemodes (./Grand/gamemodes/grandgm.pwn)

-12

Нас интересуют строчки 61-64

#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_DB "2280"
#define SQL_PASS ""

В нашем случае, нужно изменить только строчку с названием нашей БД, которую мы создавали в шаге номер 4. Для этого мы изменим "2280" на наше название - grandbase. Вариант после изменения показан ниже.

#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_DB "grandbase"
#define SQL_PASS ""

Теперь нужно откомпилировать скрипт. Для этого нажмём F5.

9. Запуск сервера

Возвращаемся в директорию с нашей сборкой (./Grand/) и запускаем файл samp-server.exe

Консоль при успешном запуске сервера
Консоль при успешном запуске сервера

В случае успешного запуска можем наслаждаться игрой на нашем локальном сервере. Для этого в окне клиента SA-MP добавим в избранное сервер с IP адресом и портом: 127.0.0.1:7777

Теперь я хочу рассмотреть одну из проблем, которая может возникнуть при запуске сервера

Script [gamemodes / .amx]: Run time error 19: "File or function is not found"
Script [gamemodes / .amx]: Run time error 19: "File or function is not found"

Такое может возникнуть потому что XAMPP использует MariaDB и сервер не может найти библиотеку для работы с этой БД.

Решением будет добавить файл с библиотекой в директорию своей сборки. Убедитесь, что библиотека libmariadb.dll находится в одной папке с samp-server.exe

А у меня на этом всё.