Перейти к контенту

Разбираемся с ошибками базы данных


GiV

Рекомендуемые сообщения

Информацию по ошибкам БД смотрите также здесь: Ошибки БД

 

Перечень основных ошибок БД и способы их исправления

Итак любая ошибка при обращении к базе сопровождается подробным логом.

Во-первых, будет выдан запрос, вызвавший ошибку:

mySQL query error: SELECT p.*,
m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,
m.icq_number,
m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
g.g_id, g.g_title, g.g_icon, g.g_dohtml, m.scripts, m.downloads
FROM ibf_posts p
LEFT JOIN ibf_members m ON (p.author_id=m.id)
LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)

WHERE p.topic_id=1 and p.queued != 1
ORDER BY p.pid LIMIT 0, 15

Для администратора, этот запрос не столь важен, как допустим для разработчика модификаций. Так что подробно останавливаться на этом не будем.

 

Далее следует важная для нас часть, это описание ошибки

mySQL error: Can't open file: 'word.MYD'. (errno: 145)

 

От сюда мы узнаем, что у нас ошибка 145 с описанием "Can't open file: 'word.MYD'". Теперь когда ошибка выяснена обратимся к нашему справочнику ошибок mySQL.

 

» Error Code 2 (No such file or directory):

Описание: был удален, очевидно администратором, файл данных mySQL, сам файл указывается в описании ошибки.

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

 

» Error Code 9 (Bad file descriptor):

Описание: данная ошибка, 'Bad file descriptor or error 9', означает, что когда Вы пытаетесь открыть таблицу БД, возникает проблема нехватки свободных файловых дескрипторов для mySQL.

Что делать: Если Вы имеете доступ к конфигурированию mySQL, т.е. у Вас на сервере есть /etc/my.cnf файл, то внесите изменения в параметр open_files_limit в разделе safe_mysqld.

Например:

[safe_mysqld]
open_files_limit=8192

и перезапустите mySQL.

Если же такой возможности нет, то свяжитесь с Вашим хостером и сообщите об этой ошибке.

 

» Error Code 28 (No space left on device):

Описание: 28 ошибка одна из самых опасных и означает она, что закончилось место для хранения данных mySQL или же что в директории /tmp Вашего сервера не хватает свободного места.

Что делать:

  • Закрыть Ваш форум, дабы не было записи в базу, при добавлении тем/сообщений и т.д.
  • Связаться с Ваши хостером (службой поддержки хостинга) и сообщить об этой ошибке.
  • Если же у Вас собственный сервер, то Вам необходимо увеличить место, отведенное для хранения данных mySQL, например перенести на новый раздел, и/или изменить расположение /tmp директории в my.cnf

» Error Code 144 (Table is crashed and last repair failed):

Описание: таблица, к которой происходило обращение, разрушилась и последняя попытка ее востановить оказалась безуспешной.

Что делать:

  • Обратиться к хостеру и сообщить об ошибке.
     
  • Если же у Вас собственный сервер, Вам необходимо остановить mySQL сервер и запустить комманду для востановления. Когда mySQL остановлен, выполните в shell/telnet/ssh комманду:
     
    myisamchk -r -u имя_пользователя -pпароль имя_базы
    где:
    имя_пользователя - Ваше имя пользователя базы данных имя_базы
    пароль - пароль базы имя_базы. Обратите внимание что пароль нужно указывать сразу после -p без каких-либо разделяющих символов.
    имя_базы - база который требуется восстановить.

» Error Code 145 (Table was marked as crashed and should be repaired):

Описание: таблица, к которой происходило обращение, разрушилась и необходимо ее починить.

Что делать: Читаем тут

 

» Too many connections

Описание: большое количество соединений с базой, подробнее читаем

http://www.mysql.com/doc/T/o/Too_many_connections.html

Что делать:

  • Обращаемся к хостеру и сообщаем об ошибке.
  • Если мы сами себе хостинг, то можем увеличить количесто максимальных соединений. Изменяем параметр max_connections в файле /etc/my.cnf сервера.

» mySQL server has gone away

Описание: серевер прекратил принимать соединения. Подробнее опять на сайте разработчика:

http://www.mysql.com/doc/G/o/Gone_away.html

http://www.mysql.com/doc/C/o/Common_errors.html

http://www.mysql.com/doc/S/e/Server_parameters.html

http://www.mysql.com/doc/O/p/Option_files.html

http://www.mysql.com/doc/S/H/SHOW_VARIABLES.html

Что делать:

  • Ждем некоторое время, возможно хостер просто перезапускает сервер. Если ошибка повторяется длительное время, то следуем указаниям пункта 2.
  • Стучимся к хостеру, недовольно сообщаем об ошибке.
  • Счастливым обладатели dedicated серверов.
    - По умолчанию, сервер закрывает совединение через 8 часов бездействия. Вы можете изменить время простоя параметром wait_timeout в /etc/my.cnf.
    - Другая причина получения ошибки 'mySQL server has gone away' это посылка Вами ''close'' для Вашего mySQL соединения и затем попытка выполнения запроса, уже на закрытом соединении. Убьедиться в том что mySQL сервер функционирует можно проверив его mysqladmin для проверки аптайма.
     
    Для этого введите в shell/telnet/ssh:

    mysqladmin -u root -p version
     
    - Еще одной из причин появлений этой ошибки может быть отправка Вами неверного или слишком большого запроса. Если mysqld получает слишком большой пакет или же неверный пакет, он в целях безопасности закрывает соединение с пользователем. Если Вам необходимо использование больших запросов, Вы можете увеличить этот лимит, запустив mysqld с ключем -O max_allowed_packet=# (по-умолчанию 1M) или опцией via max_allowed_packet в Вашем /etc/my.cnf файле.

Прочие ошибки mySQL, это в основном ошибки при составлении запросов к базе. В этом случае к хостеру обращаться не стоит, а попытаться решить проблему самому или же обратиться в раздел помощи на нашем форуме.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 213
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

  • Song

    Song 19 публикаций

  • Sannis

    Sannis 9 публикаций

  • Док

    Док 9 публикаций

  • NvG

    NvG 6 публикаций

  • 3 недели спустя...
  • 4 недели спустя...

Есть ошибка, но не базы данных, может, поможешь?

Пытаюсь установить любой скин для IPB 1.2

Гружу их в archive_in как написано

ПРи попытке их импортировать , мне пишет, что "Невозможно произвести чтение из CSS файла. Проверьте атрибуты этого файла и повторите попытку."

Как с этим бороться?

Ссылка на комментарий
Поделиться на других сайтах

А в архиве скина есть этот файл вобще? У тебя хостинг с php safe модом?
Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Когда функция авторизации регистрации по email на юзера включена, то при регистрации выдаёца вот такая ошибка

 

mySQL query error: INSERT INTO ibf_member_extra (id) VALUES (6)

 

mySQL error: Duplicate entry '6' for key 1

mySQL error code:

Date: Sunday 14th of March 2004 04:07:12 PM

 

Что это может бытЬ?!

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Мне кажется надо добавить код 127:

 

Got error 127 when reading table

 

Как правило, коруптится таблица из-за неправиьлного shutdown'а сервера,

или crash'а например в core, когда остается незавершенный запрос.

 

Вообще эта ошибка самая противная и страшная, так как она плавающая,

и хрен ее поймаешь и предотвратишь.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...
Got error 127 when reading table

Если возникает такая ошибка в какой либо таблице, то через phpmyadmin можно сделать Repair (Починить таблицу). Очень лёгкий выход из такой ситуации.

Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...

А вот у меня следующую ошибку выдаёт я тут почитал и так и не понял что делать помогите вот ошибка:

mySQL query error: SELECT COUNT(DISTINCT(p.pid)) as posts, COUNT(DISTINCT(p.topic_id)) as topics FROM ibf_posts p WHERE p.post_date > '1110629383' AND queued <> 1 AND forum_id IN(0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,18,17,19)

 

mySQL error: Can't open file: 'ibf_posts.MYD'. (errno: 145)

mySQL error code:

Date: Monday 21st of March 2005 11:40:51 PM

Ссылка на комментарий
Поделиться на других сайтах

  • 5 недель спустя...

mySQL query error: SELECT f.*, c.id as cat_id, c.position as cat_position, c.state as cat_state, c.name as cat_name, c.description as cat_desc,
          c.image, c.url, m.member_name as mod_name, m.member_id as mod_id, m.is_group, m.group_id, m.group_name, m.mid
          FROM IPBforum_forums f, IPBforum_categories c
            LEFT JOIN IPBforum_moderators m ON (f.id=m.forum_id)
          WHERE c.id=f.category
          ORDER BY c.position, f.position

mySQL error: Can't create/write to file '/var/tmp/#sql_27a_0.MYI' (Errcode: 69)
mySQL error code: 
Date: Wednesday 20th of April 2005 11:07:20 PM

 

а это что? 69 ошибки я не нашел у вас

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Ну тут же написано, блин:

Can't create/write to file '/var/tmp/#sql_27a_0.MYI'
перевожу: «Не могу создать/произвести запись в файл '/var/tmp/#sql_27a_0.MYI'».

 

Делай то же, что и в случае с ошибкой 2 :D

Ссылка на комментарий
Поделиться на других сайтах

mySQL query error: INSERT INTO ibf_pfields_content (field_8,field_7,field_11,field_12,field_10,field_9,member_id) VALUES('a','m',1,'',0,1,1)

 

mySQL error: Unknown column 'field_8' in 'field list'

mySQL error code:

Date: Friday 13th of May 2005 01:46:14 PM

 

хелп :D[1115977735:1116042765]Ну хоть кто нибудь поможет? Очень надо!(

Ссылка на комментарий
Поделиться на других сайтах

Для устранения проблем с русской кодировкой Вам необходимо в своих скриптах после подключения к БД MySQL вставить следующий код:

 

mysql_query ("set character_set_client='cp1251'");

mysql_query ("set character_set_results='cp1251'");

mysql_query ("set collation_connection='cp1251_general_ci'");

 

Подскажите куда это добавить в IPB 2/0/4

Ссылка на комментарий
Поделиться на других сайтах

вот, какая у меня проблема сразу же после инсталл форума:

mySQL query error: SELECT * FROM ibf_cache_store WHERE cs_key IN ( 'birthdays', 'calendar','banfilters', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats', 'languages' )

 

mySQL error: Illegal mix of collations for operation ' IN '

mySQL error code:

Date: Sunday 15th of May 2005 08:59:39 PM

люди, очень прошу помочь...

Ссылка на комментарий
Поделиться на других сайтах

Сегодян появилась при редактировании одной из тем на моём форуме.

mySQL query error: SELECT DISTINCT m.id, m.name, g.g_title FROM ibf_members as m INNER JOIN ibf_groups as g ON (m.mgroup=g.g_id) WHERE m.id IN (0 ,Arra)

mySQL error: Unknown column 'Arra' in 'where clause'
mySQL error code: 
Date: хххх

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.