Ошибка при старте ГС

Ergos

Пляшущий с бубном
Местный
Сообщения
116
Розыгрыши
0
Решения
2
Репутация
156
Реакции
97
Баллы
273
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
овероподобное
Приветствую всех. Подскажите пожалуйста о чем говорит данная ошибка и пути её решения

Код:
WARN: Could not restore clan sub-units: Unknown column 'reinforced' in 'field list'
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'reinforced' in 'field list'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
        at com.mysql.jdbc.Util.getInstance(Util.java:360)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at l2r.gameserver.model.L2Clan.restoreSubPledges(L2Clan.java:1767)
        at l2r.gameserver.model.L2Clan.restore(L2Clan.java:1060)
        at l2r.gameserver.model.L2Clan.<init>(L2Clan.java:147)
        at l2r.gameserver.data.sql.ClanTable.<init>(ClanTable.java:93)
        at l2r.gameserver.data.sql.ClanTable$SingletonHolder.<clinit>(ClanTable.java:557)
        at l2r.gameserver.data.sql.ClanTable.getInstance(ClanTable.java:552)
        at l2r.gameserver.GameServer.<init>(GameServer.java:281)
        at l2r.gameserver.GameServer.main(GameServer.java:549)
 
Решение
# Почему?
Метод restoreSubPledges, который находится в ядре, а именно l2r/gameserver/model/L2Clan.java на строке 1767, использует подключение к базе данных и последующим запросом данных.
Ошибка происходит из-за того, что в методе запрашивается данные из колонки "reinforced", которое в требуемой таблице не существует.

# Как поправить?
Не правильная база даних, или таблица не актуальная используется. Ну или просто удалить восстановление/запись некого "reinforced"
Оффтоп:
Эта ошибка говорит о том, что запрос в вашей сборке пытается обратится к колонке (в таблице базы данных) которой не существует.
Очевидные причны:
1. Вы по ошибке используете неправильную БД.
2. Во время развертывания скрипта создания башей бд либо бекапа произошли ошибки.
3. Разработчики сборки поменяли запросы в ядре, не предоставив вам необходимые данные для миграции БД (обновления структуры).
4. Вы самостоятельно изменили запросы в ядре не обновив структуру базы.

Не менее очевидные пути решения :
1. Проверте настройки подключения, убедитесь что вы используете правильную БД
2. Пересоздайте БД, повторите развертывание из скрипта установки или востановления бекапа
3. Обратитесь к разработчку сборку за скриптом обновления структуры.
4. Если вы проводили какие либо измнения в ядре, приведите структуру базы в соотвествие.

ПС, конечно же можно ткнуть пальцем в небо и создать колонку с рандомныим типом (логически можно предположить что там какойто байт\инт) но не факт что не вылезут другие ошибки изза этого либо прочие несоотвествия в структуре БД
 

    BladeRunner

    Баллов: 6
    лайк за развернутый ответ
Если овероподобное - сравнить содержание таблицы clan_subчётатам, с этим же содержанием в ClanDAO, найти не соответствия, по результатам или лишнее выпилить, или недостающее допилить.
 
# Почему?
Метод restoreSubPledges, который находится в ядре, а именно l2r/gameserver/model/L2Clan.java на строке 1767, использует подключение к базе данных и последующим запросом данных.
Ошибка происходит из-за того, что в методе запрашивается данные из колонки "reinforced", которое в требуемой таблице не существует.

# Как поправить?
Не правильная база даних, или таблица не актуальная используется. Ну или просто удалить восстановление/запись некого "reinforced"
Оффтоп:
 
Последнее редактирование:
Решение
Назад
Сверху Снизу