как настроить серверЛ2 для подключения к удалённой MySQL базе

Статус
В этой теме нельзя размещать новые ответы.

mrk22

Единомышленник
Участник
Сообщения
42
Розыгрыши
0
Репутация
1
Реакции
15
Баллы
148
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
essence vanguard
Всем привет). Подскажите как настроить сервер л2 чтобы подключиться к удалённой MySQL базе, то есть сам сервер находится на одном айпи адресе а база на другом хостинге как это реализовать)? Спасибо)).
 
mrk22, на примере настроек мобиуса
Код:
# ---------------------------------------------------------------------------
# Database
# ---------------------------------------------------------------------------

# Specify the appropriate driver and url for your database.
# Default: org.mariadb.jdbc.Driver
Driver = org.mariadb.jdbc.Driver

# Database URL
# Default: jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
URL = jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false

# Database user info (default is "root" but it's not recommended)
Login = root

# Database connection password
Password =

# Default: 5
MaximumDbConnections = 5

вместо localhost наш айпи удаленной бд
Код:
URL = jdbc:mariadb://8.8.8.8/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
или с указанием не стандартного порта
Код:
URL = jdbc:mariadb://8.8.8.8:3309/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false

На удаленной базе создаем юзера, указанного в Login = с указанием хоста подключаемой стороны (айпи жаба сервера)
Код:
8.8.4.4@root

открываем нужный порт на удаленной бд
 
  • Мне нравится
Реакции: Rolo
mrk22, на примере настроек мобиуса
Код:
# ---------------------------------------------------------------------------
# Database
# ---------------------------------------------------------------------------

# Specify the appropriate driver and url for your database.
# Default: org.mariadb.jdbc.Driver
Driver = org.mariadb.jdbc.Driver

# Database URL
# Default: jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
URL = jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false

# Database user info (default is "root" but it's not recommended)
Login = root

# Database connection password
Password =

# Default: 5
MaximumDbConnections = 5

вместо localhost наш айпи
Код:
URL = jdbc:mariadb://8.8.8.8/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
или с указанием не стандартного порта
Код:
URL = jdbc:mariadb://8.8.8.8:3309/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false

На удаленной базе создаем юзера, указанного в Login = с указанием хоста подключаемой стороны (айпи жаба сервера)
Код:
8.8.4.4@root

открываем нужный порт на удаленной бд
Я так и делал только в графе где путь к базе указан не знаю что прописать так как там нужно указать путь к MySQL/bin а на удаленном хосте я не знаю точного пути до этой папки в бд
 
Я так и делал только в графе где путь к базе указан не знаю что прописать так как там нужно указать путь к MySQL/bin а на удаленном хосте я не знаю точного пути до этой папки в бд
где какой путь указать?
 
где какой путь указать?
Код:
# Путь к папке MySQL bin. Это необходимо только в Windows.
MySqlBinLocation = C:/LRServ/Mysql/bin/

# URL-адрес базы данных
# По умолчанию: jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
URL = jdbc:mariadb://ip удаленки/mrk21_emurt?useUnicode=true&characterEncoding=utf-8&useSSL=false

# Информация о пользователе базы данных (по умолчанию используется "root", но это не рекомендуется)
Login = root

# Пароль для подключения к базе данных
Password = root

# По умолчанию: 5
MaximumDbConnections = 5


# ---------------------------------------------------------------------------
# Настройки Автоматического Резервного Копирования Базы Данных
# ---------------------------------------------------------------------------
# Создавайте резервные копии базы данных при перезапуске или выключении сервера.
BackupDatabase = False

# Путь к папке MySQL bin. Это необходимо только в Windows.
MySqlBinLocation = C:/LRServ/Mysql/bin/ (здесь не знаю что прописать)
 
Последнее редактирование модератором:
mrk22, так это для бэкапов, которые судя по настройкам отключены.
Код:
# ---------------------------------------------------------------------------
# Настройки Автоматического Резервного Копирования Базы Данных
# ---------------------------------------------------------------------------
# Создавайте резервные копии базы данных при перезапуске или выключении сервера.
BackupDatabase = False

# Путь к папке MySQL bin. Это необходимо только в Windows.
MySqlBinLocation = C:/LRServ/Mysql/bin/ (здесь не знаю что прописать)
и если даже и захочется включить, не получится у жабы как-то запустить процесс mysqldump дистанционно.
Для дампов базы делаем или cron-задачу (если никс подобная ОСь) или планировщик задач какой-нибудь если винда на сервере с базой
 
хм
mrk22, так это для бэкапов, которые судя по настройкам отключены.
Код:
# ---------------------------------------------------------------------------
# Настройки Автоматического Резервного Копирования Базы Данных
# ---------------------------------------------------------------------------
# Создавайте резервные копии базы данных при перезапуске или выключении сервера.
BackupDatabase = False

# Путь к папке MySQL bin. Это необходимо только в Windows.
MySqlBinLocation = C:/LRServ/Mysql/bin/ (здесь не знаю что прописать)
и если даже и захочется включить, не получится у жабы как-то запустить процесс mysqldump дистанционно.
Для дампов базы делаем или cron-задачу (если никс подобная ОСь) или планировщик задач какой-нибудь если винда на сервере с базой
Все указал верно но даже батник не запускается(
 
а если создать пустую папку по пути C:/LRServ/Mysql/bin/ или указать другой путь на пустую папку?
создал и прописал путь MySqlBinLocation = C:/bin/ то же самое батник не запускается до этого работал когда база с сервом были в одном месте

мой батник:
Код:
@echo off
title Login Server

:start

PATH = "C:\Program Files\Java\jdk-18.0.2.1\bin"

java -server -Xmx2G -cp ../libs/* org.l2jmobius.loginserver.LoginServer

if ERRORLEVEL 2 goto restart
if ERRORLEVEL 1 goto error
goto end

:restart
echo.
echo Admin Restarted Login Server.
echo.
goto start

:error
echo.
echo Login Server terminated abnormally!
echo.

:end
echo.
echo Login Server Terminated.
echo.

pause
 
mrk22, сомневаюсь что проблема в батнике. Проверяем с начало слушает ли порт удаленная база.
Если порт открыт и ждет подключения, проверяем есть ли доступ у юзера к базе
 
mrk22, сомневаюсь что проблема в батнике. Проверяем с начало слушает ли порт удаленная база.
Если порт открыт и ждет подключения, проверяем есть ли доступ у юзера к базе
ок попробую Спасибо))
 
mrk22, проверить открыт ли порт, на жаба сервере запускаем командную строку, и пишем

Код:
telnet 8.8.8.8 3309

для никс подобных
Код:
telnet 8.8.8.8:3309
 
mrk22, проверить открыт ли порт, на жаба сервере запускаем командную строку, и пишем

Код:
telnet 8.8.8.8 3309

для никс подобных
Код:
telnet 8.8.8.8:3309
Спасибо помог сервер запустил добавил порт хотя он стандартный))
 
по поводу настройки дампа базы л2 сервером, без вариантов по скольку сервер пытается локально запустить процесс mysqldump
функционал исключительно для бэкапа локальной базы, и для удаленной не годится)
Java:
public class DatabaseBackup
{
    public static void performBackup()
    {
        // Delete old files.
        if (Config.BACKUP_DAYS > 0)
        {
            final long cut = LocalDateTime.now().minusDays(Config.BACKUP_DAYS).toEpochSecond(ZoneOffset.UTC);
            final Path path = Paths.get(Config.BACKUP_PATH);
            try
            {
                Files.list(path).filter(n ->
                {
                    try
                    {
                        return Files.getLastModifiedTime(n).to(TimeUnit.SECONDS) < cut;
                    }
                    catch (Exception ex)
                    {
                        return false;
                    }
                }).forEach(n ->
                {
                    try
                    {
                        Files.delete(n);
                    }
                    catch (Exception ex)
                    {
                        // Ignore.
                    }
                });
            }
            catch (Exception e)
            {
                // Ignore.
            }
        }
        
        // Dump to file.
        final String mysqldumpPath = System.getProperty("os.name").toLowerCase().contains("win") ? Config.MYSQL_BIN_PATH : "";
        try
        {
            final Process process = Runtime.getRuntime().exec(mysqldumpPath + "mysqldump -u " + Config.DATABASE_LOGIN + (Config.DATABASE_PASSWORD.trim().isEmpty() ? "" : " -p" + Config.DATABASE_PASSWORD) + " " + Config.DATABASE_URL.replace("jdbc:mariadb://", "").replaceAll(".*\\/|\\?.*", "") + " -r " + Config.BACKUP_PATH + (Config.SERVER_MODE == ServerMode.GAME ? "game" : "login") + new SimpleDateFormat("_yyyy_MM_dd_HH_mm'.sql'").format(new Date()));
            process.waitFor();
        }
        catch (Exception e)
        {
            // Ignore.
        }
    }
}
но хотя бы перехвачено исключение
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу