PDA

Просмотр полной версии : Глобальный FAQ (разработка)


Konctantin
06.03.2010, 14:18
Данное пособие очень краткое, но в основном помогает найти решения любой проблемы, когда сервер не запускается. Итак, поехали:

1) Где можно скачать сервер, базу, сайты и программы???
Ответ:
Компилированный MaNGOS (http://ytdb.ru/showthread.php?t=3).
Сайты (http://ru-mangos.ru/forumdisplay.php?f=23).
Базы: YTDB (http://ytdb.ru/) и UDB (http://udbforums.kicks-ass.net/).
Программы легко находятся поиском по названию (http://www.google.ru/).

2) Не знаете, что писать в хост-логин-пароль подключения к базе данных
Ответ: Не ставьте сервер. Узнайте для начала что такое MySQL, потратьте пару часов своего времени на чтение описаний, и пару месяцев на обучение. Без этого знания вы все равно ничего не сможете сделать.

3) Сервер запускается и сразу закрывается
Ответ: проверьте правильность настройки файлов mangosd.conf и realmd.conf

4) Сервер запускается и висит, в игру зайти нельзя, возможно, выдаёт ошибку:Could not connect to MySQL database at ***
Ответ: Проверьте в файлах mangosd.conf и realmd.conf настройки коннекта сервера к базе данных.

5) Сервер запускается и висит, в игру зайти нельзя. Выводит ошибки типа:2009-01-20 12:04:51 ERROR:Map file './maps/0004331.map' is non-compatible version (outdated?). Please, create new using ad.exe program.
2009-01-20 12:04:51 ERROR:Correct *.map files not found in path './maps' or *.vmap/*vmdir files in './vmaps'. Please place *.map/*.vmap/*.vmdir files in appropriate directories or correct the DataDir value in the mangosd.conf file."

Some required *.dbc files <2 from 57> not found or not compatible:
./dbc/BattlemasterList.dbc<exsist, but have 34 fields instead 33> wrong client version DBC file?
./dbc/Map.dbc<exist, but have 117 fieds instead 123>wrong client version DBC file?
Ответ: Проверьте наличие папок maps, vmaps и dbc, а также правильность указания пути к ним в файле mangosd.conf При необходимости переизвлеките карты, dbc подходящим для версии клиента и сервера экстрактором ad.exe (всегда можно найти в репозитории проекта)

6) Сервер запускается, но пишет ошибки (возможно, не пускает в игру) Ошибки могут выглядеть так:ERROR:Error loading `playercreateinfo` table or empty table
2008-11-29 21:29:57 query ERROR: Table 'mangos.creature_movement_addon' doesn't exist
2008-11-29 21:32:37 SQL: SELECT id, gmlevel, sessionkey, last_ip, locked, sha_pass_hash, v, s, tbc, mutetime, locale FROM account WHERE UPPER(username) = UPPER('TEST')
2008-11-29 21:32:37 query ERROR: Unknown column 'tbc' in 'field list'
2008-11-29 22:29:57 SQL: SELECT text FROM autobroadcast ORDER BY RAND() LIMIT 1
2008-11-29 22:29:57 query ERROR: Table 'mangos.autobroadcast' doesn't exist
Ответ: Переведите текст ошибки. Ответ содержится именно в них. Проверьте вашу базу. Посмотрите текст ошибки и проверьте ошибку в базе вручную. Затем проверьте под какую ревизию ваша база и какой ревизии ваш сервер, скорее всего вам необходимо поставить обновления из папки sql/update сервера на вашу базу мира, персонажей, рилма. Возможно, необходимо установить sql обновления от патчей использованных в вашей сборке сервера.

7) Сервер запускается, но нет персов или иная ошибка с персонажами (возможно, в консоли есть ошибки)
Ответ: Проверьте вашу базу. Посмотрите текст ошибки и проверьте ошибку в базе вручную. Затем проверьте под какую ревизию ваша база и какой ревизии ваш сервер, скорее всего вам необходимо поставить обновления из папки sql/update сервера на вашу базу персонажей. Возможно, необходимо установить sql обновления от патчей использованных в вашей сборке сервера.

8) При попытке запуска mangosd.exe пишет что тот неправильно сконфигурирован/некорректно настроено
Ответ: Установите Microsoft Net Framework 3.5

9) Апдейт МуСКЛ при заливе пишет какую-то ошибку.
Ответ: Перевести ошибку, пользуясь любыми доступными средствами (словарь, сервис онлайн перевода, умный друг, родители, учитель англ. в школе). В тексте описания ошибки обычно и содержится инструкция по исправлению.

Судя по постам на форуме, самых распространенных ошибок немного:
a. SQL ERROR: Unkown column - версия дампа не подходит к версии базы. Сделать так, чтобы подходила - либо откатить базу до версии дампа, накатить дамп, а потом апдейты до текущей версии, либо руками поправить дамп, глядя на произошедшие в базе изменения.
b. Table 'название' doesn't exist - таблица не существует. Проверить - стоит ли МуСКЛ, есть ли разрешение у текущего юзера, в ту ли базу заливается дамп. Создать таблицу, взяв нужные файлы из сервера мангос.
c. Error loading `название` table or empty table - ошибка загрузки таблицы, или таблица не существует. Проверить версию базы, или же (см. выше).
d. Unable to connect to MySQL server - не могу подключиться к МуСКЛ. Либо неверно написан хост базы данных, либо у текущего юзера нет прав доступа.
e. Error in your SQL syntax - ошибка в МуСКЛ запросе. Изучать МуСКЛ запросы, искать в чем ошибка.
f. MySQL server has gone - МуСКЛ сервер не может принять такой большой файл. Разбить дамп на несколько мелких куском, либо в конфиге МуСКЛ разрешить заливку больших файлов. (max_allowed_packet = 128M)

10) При запуске приложения выдает ошибку "Приложению не удалось запуститься, поскольку MSVCR71.dll не был найден. Повторная установка приложения исправит эту проблему"
Ответ: скачать соответствующую библиотеку и распаковать в папку /Windows/system32/

11) Реалмлист в wow просто пустое окно
Ответ: проверьте правильность указания ip адреса в таблице realmlist, а также правильность указания timеzone (должны быть одинаковы для конфига и записи в базе). Так же проверьте правильность указания портов.

12) Я скачал готовую сборку, но у меня в ней что-то не работает.
Ответ: На нашем форуме запрещено выкладывать готовые сборки, соответственно - обращайтесь туда, где вы её скачали

13) Не создаются новые расы, класс, сервер как не BC или не WotLK
Ответ: Проверить в конфиге сервера строку Expansion (0 - классический клиент, 1 - BC, 2 - WotLK) Так же проверить поле expansion в таблице account базы realmd (те же значения).
В случае необходимости изменить дефолтное значение этого поля на 2. Также проверьте сайт регистрации, возможно там так же по умолчанию в поле expansion прописывается 0.

14) Клиент не может подключиться к серверу
Ответ: Проверьте правильность адреса указания в файле realmlist.wtf клиента. В версии клиента 3.0.3 он находится в папке Data\ru (ru - как пример - зависит от языка клиента). Так же стоит проверить правильность указания адреса в таблице realmlist базы realmd. Для игры одному на компе - 127.0.0.1 - для игры по сети - сетевой адрес компьютера. Так же следует проверить правильность указания портов.

15) Как создать аккаунт
Ответ: Или через сайт, который вы можете установить или через команду в консоли:
account create ИМЯ ПАРОЛЬ

16) Как дать ГМ права аккаунту?
Ответ: Таблица account в базе realmd. Значения поля gmlevel: 0-обычный аккаунт, 1-модератор, 2-гейммастер, 3-администратор (полные права).

17) Проблема в том что рестартер не срабатывает сразу. Windows хочет отправить отчет об ошибке. пока не нажмешь Не отправлять отчет, рестратер не начинает работать!
Ответ: Отключить отчет об ошибках.

18). У меня очень долго заливается база (или SQL-файл) через Navicat. Как исправить?
Ответ: Пользуйтесь SQLyog'ом или консолью. Как юзать консоль - см подпись Y2kCat

19) Как узнать все команды в консоли сервера?
Ответ: прописать в консоли команду help. Более подробно для каждой команды - help КОМАНДА.

20) Как узнать все доступные команды в игре?
Ответ: набрать в чате команду .commands

21) Смена пароля, ника, регистрация акка через базу.
Ответ:
# Обновляет пароль у уже существующего аккаунта
UPDATE `account` SET `sha_pass_hash`=SHA1(CONCAT(UPPER(`username`),':', UPPER('НОВЫЙ_ПАРОЛЬ'))) WHERE `id`=x;
# Смена имени уже существующего аккаунта:
UPDATE `account` SET `username`='НОВОЕ_ИМЯ', `sha_pass_hash`=SHA1(CONCAT(UPPER('НОВОЕ_ИМ Я'),':',UPPER('ПАРОЛЬ'))) WHERE `id`=x;
# Создание нового аккаунта:
INSERT INTO `account(`username`,`sha_pass_hash`) VALUES('ИМЯ_АККАУНТА', SHA1(CONCAT(UPPER('ИМЯ_АККАУНТА'),':',U PPER('ПАРОЛЬ')))"



=================

Убедительнейшая просьба, создавайте новые темы и постите сообщения только после того, как проверите всё, перечисленное здесь!
Если прочитав этот пост вы понимаете, что у вас именно тот вопрос, который здесь задан, но вы не знаете, как сделать то, что написано в ответе - это не повод создавать новую тему. Учитесь пользоваться поиском! 99% задаваемых тут новичками вопросов уже не раз обсуждались на форуме, учитесь пользоваться поиском или пользоваться им правильно!

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



=================

Если есть предложения по заполнению первого поста, пишите - это приветствуется.






Любые новые темы с вопросами, на которые ЗДЕСЬ есть ответы, влекут за собой незамедлительное наказание.

Neggod
07.03.2010, 12:04
9)g. Duplicate entry for key Primary ... - Такое значение уже есть. Пропустить запрос если строка верная, если нет - привести запрос к виду: update, delete\insert, insert ignore .(удобно заменять в Notepad++)
18)HeidiSQL тоже "шустрый" клиент +free

hex
08.03.2010, 19:17
Копипаст с прошлого форума, автора не упомню.

Error Code: 1064 - You have an error in your SQL syntax;
- Синтаксическая ошибка в запросе, обычно указывается где именно.

Error Code: 1054 - Unknown column 'ххххх' in 'field list'
- Неизвестное имя колонки в запросе в списке полей. Решение - сравните поля в запросе и в целевой таблице и исправьте запрос

Error Code: 1050 - Table 'ххххх' already exists
- Попытка создать уже имеющуюся таблицу. Таблицу в базе можно конечно удалить, но вы должны отдавать себе отчет в своих действиях. Совет - перед удалением существующей таблицы - ОБЯЗАТЕЛЬНО БЭКАП

Error Code: 1060 - Duplicate column name 'ххххх'
- Попытка добавить уже существующую колонку. Если вы делаете апдейт базы, значит , скорее всего в исполнении данного запроса нет необходимости

Error Code: 1146 - Table 'base_name.table_name' doesn't exist
- Таблица в базе с именем таким-то не существует. Вы должны создать пустую таблицу перед выполнением этого запроса.

Error Code: 1136 - Column count doesn't match value count at row 1
- Количество колонок в таблице не соответствует количеству переменных в запросе. Можно попытаться понять какая переменная отсутствует или лишняя в запросе, сравнив с уже имеющимися данными таблицы.

Error Code: 1062 - Duplicate entry 'ххххх' for key 1
- Попытка записать уже имеющееся значение в ключевую колонку. Измените значение переменной в запросе. Если необходимо выполнить несколько запросов по одной задаче в разные таблицы, вы должны записать одинаковые значения переменной везде где она существует во избежание потери линков.

1264 - out of range value for column
- Написано что значение превышает допустимый диапазон. Не надо в таблицу пихать значение 150116. Идем учить матчасть - там тип данных smallint
smallint[(m)] [unsigned] [zerofill]
Малое целое число. Диапазон со знаком от -32768 до 32767. Диапазон без знака от 0 до 65535.

[Err] [Imp] 1366 - Incorrect decimal value: '' for column 'cancraft' at row 1 - эта строка говорит о том, что ячейке `cancraft` не может быть присвоено пустое значение то есть она NOT NULL.
- Выхода два - изменить ручками дамп и везде, где эти значения пустые с помощью бубна и призвания бога баз данных, шаманством и подбором необходимых значений руками внести изменения в дамп и провести его.
Второй - проще. Убрать NOT NULL для столбца `cancraft` таблицы `characters`.

Error Code: 2006 - MySQL server has gone away
- При исполнении запроса потеряна связь с SQL сервером. Ошибка попадалась мне при работе в SqlYog при создании дампа таблицы (обычно большого размера) и последующей попытке залить его. Решение - создайте запрос со структурой таблицы отдельно и экспортируйте данные таблицы в отдельный файл. После этого создаете таблицу первым запросом, и импортируете файл с данными.

tempura
08.03.2010, 22:38
исправил форматирование. теги не расставлял.

Madmunus
09.03.2010, 06:57
Вот можно как сноску на более подробную информацию сделать:
http://dev.mysql.com/doc/refman/5.1/en/error-messages-server.html
http://dev.mysql.com/doc/refman/5.1/en/error-messages-client.html

Rage Hunter
14.03.2010, 02:23
Вот этот запрос по моему не коректен
UPDATE `account` SET `sha_pass_hash`=SHA1(CONCAT(UPPER(`username`),':', UPPER('НОВЫЙ_ПАРОЛЬ'))) WHERE `id`=x;

должно быть так (не уверен, но все же)
UPDATE `account` SET `sha_pass_hash`=SHA1(CONCAT(UPPER(`username`),':', UPPER('НОВЫЙ_ПАРОЛЬ'))), `sessionkey` = 'NULL', `v` = 'NULL', `s` = 'NULL' WHERE `id`=x;


Второй запрос следовательно тоже!

virusav
14.03.2010, 10:46
Для локального сервера ставлю всем права ГМ и устанавливаю один пароль:
UPDATE `account` SET `gmlevel`='4', `v`=NULL, `s`=NULL, `sha_pass_hash`=SHA1(CONCAT(UPPER(`username`),':EN TER'));

На 3.3.2 работает исправно.