Назад

Mysql+eathena Sql

Автор: Sonic: Дата: 10.21.2008

Что нужно:
MySQL.
MySQL Control Center.
ищите в google.



Установка:

Разархивируйте eAthena SQL в директорию, какая вам угодна. Я бы советовал не парить себе мозги, и установить на C:athanesql

MySQL
Думаю, устанавливать программы умеют все. Хочу только предупредить, что рекомендуется не менять путь установки. Иначе прийдется искать в системе my.ini и там изменять директорий. А потом, еще фиг знает, сколько проблем изза этого может возникнуть.
После установки запустите mysqladmin.exe (в папке bin) где, в высветевшемся окне укажите имя и пароль доступа к базе. Для начала надо: "ragnarok" "ragnarok". После чего, нажмите OK, программа запустится, и автоматически свернется.

MyODBC.
Тут всё на автомате.

MySQL Control Center
После установки запустите.
В левом окне, заголовок которого несет собой "MySql Servers" нажмите правой клавишей мышки -> New.

Name: localhost
Host Name: localhost
User Name: root
Password:

Пароль вводить ненадо. После чего в правом нижнем углу нажмите "Add".

Создастся база с именем "localhost". Нажмите на нее два раза, после чего она должна обрести на себе зеленую стрелочку, а под ней должна появиться папочка с именем "Databases".

Правый клик на папочке -> New Database.

Enter the new database name: ragnarok

После создания, в поддиректории этой папочки должна появится база с именем "ragnarok". Нажмите на нее два раза, она должна загореться зеленым цветом. А в ней должна открыться поддиректория с именем "Tables".

Теперь приступим к установке таблиц, используемых эмулятором.
Выберите базу с именем "ragnarok" и нажмите на синий значек "SQL".

Откроется окно. Затем загрузите файл из директории установленого вами эмулятора "athenasqlsql-files" - "main.sql". Должен загрузиться скрипт языка SQL. После чего нажмите на знак восклицания.

Скрипт должен запуститься, и сделать свое дело.
После того, как он установит, откройте следующий файл... и так все кроме тех, что с префиксом update.

После чего закройте это окно, и переконнектите базу данных ("переконнектить" - нажать на базу ("ragnarok") посе чего нажать на значек, показанный на картинке. После того, как иконка базы перестанет быть зеленой, нажать на значек еще раз).

У поддиректории базы "ragnarok" с именем "Tables" должен появится плюсик.

Откройте эту поддиректорию. Если там появилось много разных табличек - значит установка произведена успешно.

После чего, опять нажмите на значек SQL, но на этот раз, вместо того, чтобы загружать файлы, мы напишем кое-что сами.

Введите туда вот такое вот сочитание символов:

INSERT INTO login VALUES

('0','s1','p1','0000-00-00 00:00:00','S','0','','0','0','0','0','0','0','0')


И запустите. (не знабывайте смотреть на строку состояния, находящуюся снизу. Она может нам о многом сказать, особенно, обилуя красными значками - это значит, что что-то выполнено неправильно)

Если все прошло хорошо, можно приступить к настройке эмулятора. Только перед этим нам надо создать "пользователя" для базы данных, чтобы эмулятор имел к ней доступ.

Выходим к полю, где мы создавали базы. Находим снизу раздел под названием "User Administration", нажимаем правой клавишей мышки -> New User

Username: ragnarok
Host: localhost
Password: ragnarok

Privileges: All Privileges

Allow access to: ragnarok (это справа)

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

Теперь мы создали пользователя, через которого эмулятор (eAthenaSQL) будет связываться с базой данных.

Если у вас до этого была версия TxT eAthena то не проблема перенести все в SQL. Просто запустите в корневом каталоге эмулятора файлы: char-converter.exe, login-converter.exe.
Они должны работать, если имя в пользователе, созданного для базы данных = "ragnarok", пароль = "ragnarok". Покачто, оно у нас так и есть.
Если, после настройки вы захотите его поменять (что, в принцыпе, обязательно сделать, я потом все обьясню).

Открываем conf/char_athena.conf (в текстовике)

// Server name, use alternative character such as ASCII 160 for spaces.
server_name: <Имя вашего сервера>

// Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
wisp_server_name: <Имя вашего сервера>

// Login Server IP
login_ip:
// Login Server Port
login_port: 6900 (так и оставить)

// Character Server IP
char_ip:
// Character Server Port
char_port: 6121 (так и оставить)

закрываем файл - сохраняем.

Открываем conf/map-athena.conf (в том же текстовике)

// Character Server IP
char_ip:
// Character Server Port
char_port: 6121 (так и оставить)

// Map Server IP
map_ip:
// Map Server Port
map_port: 5121 (так и оставить)

закрываем файл - сохраняем.

Открываем conf/inter_athena.conf

// MySQL Login SQL Server
login_server_ip: 127.0.0.1 (так и оставить)
login_server_port: 3306 (так и оставить)
login_server_id: ragnarok (наше имя в базе - есть)
login_server_pw: ragnarok (наш пароль в базе - если поменять в базе на другой, то поменять и здесь)

login_server_db: ragnarok (имя нашей базы - не менять)

// MySQL Character SQL server
char_server_ip: 127.0.0.1 (так и оставить)
char_server_port: 3306 (так и оставить)
char_server_id: ragnarok (имя - не менять)
char_server_pw: ragnarok (пароль ... )
char_server_db: ragnarok (имя базы)

// MySQL Map SQL Server
map_server_ip: 127.0.0.1 (так и оставить)
map_server_port: 3306 (так и оставить)
map_server_id: ragnarok (имя ... )
map_server_pw: ragnarok ( ... )
map_server_db: ragnarok ( ... )

Вот. Надеюсь, тут понятно все.

Открываем conf/grf-files.txt
Указываем там полные пути наших grf файлов клиента.
Закрываем, сохраняем.

Открываем conf/motd.txt
Пишем приветствие при задоде в игру.

Еще полчасика лазим по conf/battle_athena.conf и настраиваем сервак. Полный перевод всему, что там есть я не осмелюсь, но думаю, что это может сделать (или уже сделал!) кто-то другой.


DNS

DNS - это имя, которое привязывается к вашему IP. Получить его можно на http://no-ip.com
Зарегистрируйтесь, получите имя, скачайте программку, которая будет стоять у вас на компьютере, отслеживать изменение вашего IP и отправлять его серверу (no-ip.com) чтобы он прилепливал DNS (к примеру, yourname.no-ip.com) с каждым изменением вашего IP.

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

// Login Server IP
login_ip: servername.no-ip.com
// Login Server Port
login_port: 6900

MD5 Security

Что такое MD5 ? Это система кодирования. Она кодирует так, что раскодировать уже невозможно. Именно таким образом шыфхуют пароли пользователей в базах. Имеется в виду, что даже если злоумышленник доберется до базы, он получит вместо пароля примерно такое: 38d7355701b6f3760ee49852904319c1

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

Вот пример: "athena" -md5> "0454aa97682235df3ed1a3456bc86e62"

Если вы не поленитесь, советую сделать такую защиту для паролей на своем сервере.

Как это сделать...
Во первых, запустите в текстовом редакторе файл conf/login_athena.conf и найдите строчку:

//Passwords in Login DB are MD5 - cannot b used on client with this on
use_MD5_passwords: yes (поставьте yes)

Во вторых, откройте опять базу. Нажмите опять на значек SQL (это тот, с помощью которого мы запускали скрипты и устанавливали данные). И в окне наберите следующее:

UPDATE `login` SET `user_pass`=MD5(`user_pass`);


После чего запустите.

Все, наш сервер теперь более защищен, чем прежде.

На завершение

Не забудьте поменять пароль в базе данных:
User Administration -> ragnarok@localhost ->
Password =
Apply, Close.

conf/inter_athena.conf :

login_server_pw:
char_server_pw:
map_server_pw:

Автор: : Дата: 01.01.1970