MySQL Error 2013

11 отговора 1245 прегледа
#1

MySQL Error 2013

Проблемът идва с една таблица - мога да й видя структурата, но не и съдържанието - при SELECT заявка на каквато и да е част от таблицата (примерно дори и едно-единствено поле) веднага дава грешка:

2013 - Lost connection to MySQL server during query
Опитах да увелича timeout-a на mysql сървъра, обаче - пак същото...
А да - разни CHECK TABLE, ANALYZE TABLE, REPAIR TABLE, OPTIMIZE TABLE връщат ОК...
Малко данни: MySQL 4.0.18/Slackware 9.1

Ако някой е имал подобен проблем или идея как да го разреша - нека помага...

воля, воля... и пак воля...
Отговор
в отговор на stinger #2

Re: MySQL Error 2013

Я дай SHOW CREATE TABLE а преди това провери в .err лога дали mysqld не се рестартира.

salle.online.bg/sig
Отговор
в отговор на salle #3

Re: MySQL Error 2013

SHOW CREATE TABLE връща резултат (и не рестартира сървъра)- дава структурата на таблицата, но всякакви SELECT, UPDATE, INSERT и т.н. го рестартират моментално...
P.S. - със hex editor съдържанието на файловете .MYD и .MYI се чете. Интересно - има ли вариант съдържанието на таблицата да е ОК, обаче индекса с позициите на данните в .MYD да е скапан...

воля, воля... и пак воля...

Редактирано от stinger на

Отговор
в отговор на stinger #4

Re: MySQL Error 2013

Можеш ли да ми изпратиш таблицата по някакъв начин?

По принцип повредена таблица може да срине mysqld но тогава поне CHECK и REPAIR ще кажат нещо.

Можеш ли да пуснеш debug mysqld с --core-file за да видим къде точно гърми?

salle.online.bg/sig
Отговор
в отговор на salle #5

Re: MySQL Error 2013

на пощата посочена в сигнатурата съм ти пратил таблицата... мерси предварително...

воля, воля... и пак воля...
Отговор
в отговор на stinger #6

Re: MySQL Error 2013

Мерси.
Току що гръмнах 4.0 сега отивам да дебъгвам.

select count(*) from

Мина успешно, което ме навежда на интересни мисли

salle.online.bg/sig
Отговор
в отговор на salle #7

Re: MySQL Error 2013

Таблицата ти е повредена по много странен начин.

Според мен просто .frm и .MYI файлfмете не са от същата таблица. Нещо в стил, че някой от файловете е възстановен от backup правен преди последните промени с ALTER

Можеш ли да го провериш?

REPAIR ... USE_FRM;
се справя обаче оставя само един ред в таблицата. Другите заминават в релационния рай.

salle.online.bg/sig
Отговор
в отговор на salle #8

Re: ако искаш да спасиш данните

трябва да възстановиш .frm файла защото той очевидно е грешен


myisamchk -dvvi
ще ти даде структурата такава каквато е в .MYD и .MYI и там ще видиш, че колонките са други.

salle.online.bg/sig
Отговор
в отговор на salle #9

Re: ако искаш да спасиш данните

Жив да си!!! Бирата е от мен - само казвай кога и къде....
И още нещо - малко е тъпо, ама - има ли начин за rebuild-ване на .frm от съществуващите MYI и MYD или не...

П.С. Бахти к'во съм шиле - може, ама остава само един ред... който на всичко отгоре не е със същата структура... ти си го написал, ама кой да чете
в бързането...
воля, воля... и пак воля...

Редактирано от stinger на

Отговор
в отговор на stinger #10

Re: ако искаш да спасиш данните

на всичко отгоре не е със същата структура
Именно това е проблема

REPAIR ....; Чете САМО .MYI и .MYD. Не ме питай защо

А те са си в прекрасно състояние.
Обаче по някакъв начин са се сдобили с погрешен .frm

В който структурата е друга.

Оттам можеш да разбереш защо
SHOW CREATE TABLE
няма проблеми - защото чете САМО .frm

SELECT ... нещо си
Вече чете първо .frm за да види каква е структурата и след това спорде нея търси съответните байтове на съответните места в .MYD и ..... сещаш се какво се случва при теб.


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

salle.online.bg/sig
Отговор
в отговор на salle #11

Re: ако искаш да спасиш данните

>Изобщо по.добре да опиташ да разбереш как се се стигнало до такава боза при теб
Ми то не е при мен. Тази таблица ми я даде един приятел - станалото е кофти сектор на диска и вероятно fsck е омазал работата...

воля, воля... и пак воля...
Отговор
в отговор на salle #12

Изчетох тая тема и MySQL RefMan, да питам

[линк]

Извинявам се за дългото приложение!
Знам и че не харесвате select * from :)
Но тия заявки по-долу си вървят с дни, докато в някой момент стане
errcode: 2013, error: Lost connection to MySQL server during query
Имате ли идея как да локализирам проблема?
Става въпрос за сървър и два клиента - единият на машината на сървъра. Клиентът на машината на сървъра често (на няколко дни веднъж дава грешката), а другия клиент - никога.
Не става въпрос за wait_timeout и подобни, които са на по 8 часа.

>>> 2005-06-01 12:58:02 cat: Execute, proto: mysql-4.0, msg: SELECT `serv_000_jrn_order`.Id //# този ред е, за да се види времето на предходната заявка (не е пълен SQL)
2005-06-01 12:58:03 cat: Execute, proto: mysql-4.0, msg: SELECT `ktrg_010_nmn_klient`.Id, `ktrg_010_nmn_klient`.Name AS NameKlient, `ktrg_011_nmn_grad`.Name AS NameGrad, `ktrg_010_nmn_klient`.Addr, `ktrg_010_nmn_klient`.Tel, `ktrg_010_nmn_klient`.Fax, `ktrg_010_nmn_klient`.GSM FROM `ktrg_011_nmn_grad` RIGHT OUTER JOIN `ktrg_010_nmn_klient` ON (`ktrg_011_nmn_grad`.Id = `ktrg_010_nmn_klient`.IdGrad) WHERE ( (`ktrg_010_nmn_klient`.Id =174) )
>>> 2005-06-01 12:58:03 cat: Execute, proto: mysql-4.0, msg: SELECT `ktrg_010_nmn_klient`.Id, `ktrg_010_nmn_klient`.Name AS NameKlient, `ktrg_011_nmn_grad`.Name AS NameGrad, `ktrg_010_nmn_klient`.Addr, `ktrg_010_nmn_klient`.Tel, `ktrg_010_nmn_klient`.Fax, `ktrg_010_nmn_klient`.GSM FROM `ktrg_011_nmn_grad` RIGHT OUTER JOIN `ktrg_010_nmn_klient` ON (`ktrg_011_nmn_grad`.Id = `ktrg_010_nmn_klient`.IdGrad) WHERE ( (`ktrg_010_nmn_klient`.Id =174) )
2005-06-01 12:58:03 cat: Execute, proto: mysql-4.0, msg: SELECT `ktrg_010_nmn_klient`.Id, `ktrg_010_nmn_klient`.Name AS NameKlient, `ktrg_011_nmn_grad`.Name AS NameGrad, `ktrg_010_nmn_klient`.Addr, `ktrg_010_nmn_klient`.Tel, `ktrg_010_nmn_klient`.Fax, `ktrg_010_nmn_klient`.GSM FROM `ktrg_011_nmn_grad` RIGHT OUTER JOIN `ktrg_010_nmn_klient` ON (`ktrg_011_nmn_grad`.Id = `ktrg_010_nmn_klient`.IdGrad) WHERE ( (`ktrg_010_nmn_klient`.Id =174) )
>>> 2005-06-01 12:58:03 cat: Execute, proto: mysql-4.0, msg: SELECT `ktrg_010_nmn_klient`.Id, `ktrg_010_nmn_klient`.Name AS NameKlient, `ktrg_011_nmn_grad`.Name AS NameGrad, `ktrg_010_nmn_klient`.Addr, `ktrg_010_nmn_klient`.Tel, `ktrg_010_nmn_klient`.Fax, `ktrg_010_nmn_klient`.GSM FROM `ktrg_011_nmn_grad` RIGHT OUTER JOIN `ktrg_010_nmn_klient` ON (`ktrg_011_nmn_grad`.Id = `ktrg_010_nmn_klient`.IdGrad) WHERE ( (`ktrg_010_nmn_klient`.Id =174) )
2005-06-01 13:49:52 cat: Execute, proto: mysql-4.0, msg: SELECT * FROM serv_000_jrn_order
, errcode: 2013, error: Lost connection to MySQL server during query
>>> 2005-06-01 13:49:52 cat: Execute, proto: mysql-4.0, msg: SELECT * FROM serv_000_jrn_order
, errcode: 2013, error: Lost connection to MySQL server during query
2005-06-01 13:49:57 cat: Execute, proto: mysql-4.0, msg: SELECT * FROM serv_000_jrn_order

Отговор