Forum Webscript.Ru
Общие => Базы данных => Тема начата: evgkuz от 27 Апреля 2003, 04:51:06
-
Из-за чего может появляться ошибка :
"Can\'t open file: \'d_anketa.MYI\'. (errno: 145)" ???
-
может его просто нет ? А как там с правами ? Может у тебя файл запаролся, может машину неверно перезапустили и он был открыт ?
-
Запрос покеж.
-
evgkuz
Попробуй полечить таблицу. Если не поможет, читай здесь (http://www.mysql.com/documentation/mysql/bychapter/manual_Problems.html#Not_enough_file_handles)
-
Alexandr
INSERT INTO d_anketa SET sex=\'2\', looksex=\'1\', for1=\'1\', for2=\'2\', for3=\'3\', for4=\'4\', for6=\'6\', for8=\'8\',
myname=\'Аделя\', email=\'argoada@yandex.ru\', pass=\'zzz\', ch_about=\'зеленоглазая, стройная брюнетка\',
placetime=\'2003-09-16\', height=\'168\', weight=\'48\', body=\'2\', eyes=\'4\', hair=\'2\', hairtype=\'1\', zodiak=\'4\',
marital=\'1\', child=\'1\', education=\'2\', url=\'http://\', religion=\'5\', ch_basic=\'темпераментна\', ch_dream=\'быть
счастливым человеком\', ch_pos=\'целеустремленность\', ch_neg=\'слабохарактерность\', ch_title=\'никогда не здаваться\',
ch_company=\'компанию\', in_smoking=\'0\', in_alcohol=\'0\', in_food=\'фрукты\', in_cook=\'обожаю\', in_drink=\'мартини\',
in_rest=\'путешествовать\', in_liter=\'поэзия\', in_movie=\'комедии\', in_job=\'студентка\', in_about=\'люблю слушать хорошую
музыку, играть на форьепиано\', need=\'сильного, целеустремленного человека\', city=\'26\', birthday=\'1982-07-05\',
data=\'2003-05-19\'
-
Maniac
А что значит "полечить таблицу" ?
-
evgkuz
У меня вернуло вот что для такой ошибки (perror 145) :
145 = Table was marked as crashed and should be repaired
evgkuz:
А что значит "полечить таблицу" ?
http://www.mysql.com/doc/ru/REPAIR_TABLE.html
-
Я востановил эту таблицу, но так и не понял из-за чего это происходит уже второй раз, с интарвалов в 1 месяц ?
Аудитория сайта около 100 человек, так что это уж точно не из-за перегрузки.
Это происходит из-за запросов или сервера ?
-
evgkuz:
но так и не понял из-за чего это происходит
У меня подобное случалось на 4.0.10-gamma (в смысле таблица тоже требовала REPAIR).
Из-за множественного UPDATE\'а из одной и той же таблицы.
Сейчас сижу на 4.0.11a-gamma - на хостинге и 4.0.12-max - дома, такого глюка не замечено, но и там и там (на 3.23.хх не проверял) есть др. глюк:
после ALTER TABLE .... таблица вообще выносится и восстановлению не подлежит.
Если интересно могу написать.
-
Alexandr
У меня раз в день выполняется этот запрос:
mysql_query(" UPDATE d_anketa SET today=\'0\' ");
Это из-за него у меня глючит таблица ???
"4.0.10-gamma", "4.0.11a-gamma" и "4.0.12-max" - это версии MySQL ?
Если Вам не трудно напишите пожалуйста.
-
evgkuz:
Это из-за него у меня глючит таблица ???
Не из-за него, а
Alexandr:
Из-за множественного UPDATE\'а из одной и той же таблицы.
т.е. например,
UPDATE detail_tree t, detail_tree t2 SET t.cat_name=t2.cat_name WHERE t.id IN (55, 58) AND t2.id=10;
говоря простым языком необходимо скопировать значение cat_name из строки 10 в строки 55 и 58
evgkuz:
"4.0.10-gamma", "4.0.11a-gamma" и "4.0.12-max" - это версии MySQL ?
ес-но
-
На сервере хостигна стоит MySQL 4.0.12, т.е. теоретически всё должно работать нормально, т.к. я обычно не использую "ALTER TABLE".
-
evgkuz
evgkuz:
теоретически всё должно работать нормально
Теоретически. Все-таки четвертая версия мускула еще недостаточно обкатана. Ты, кстати, техподдержке хостинга этот вопрос не задавал?
-
При применении REPAIR TABLE d_anketa таблица востанавливается и выдаёт следующие сообщения:
1) info Wrong block with wrong total length starting at 149824
2) info Found block that points outside data file at 150472
3) warning Number of rows changed from 369 to 368
4) status OK
-
Maniac:
Ты, кстати, техподдержке хостинга этот вопрос не задавал?
Нет.Alexandr:
У меня подобное случалось на 4.0.10-gamma
Alexandr:
Сейчас сижу на 4.0.11a-gamma - на хостинге и 4.0.12-max - дома, такого глюка не замечено
Есть более злостный глюк, который таблицу вообще из строя выводит и ничего не помогает.
Вот про него я хочу написать багрепорт, но думаю не смогу его по-англицки описать
-
http://www.autodealer.ru/mysql_bug.php
-
Alexandr, а в чем собственно глюк?
-
А не заметила, что случилось после ALTER\'а (обрати внимание 2-е последние табилицы: полетели названия первых 2-х столбцов и + данные из cat_name, prim_col_name)
-
дай структуру твоей таблицы (это значит вывод SHOW CREATE TABLE, а не EXPLAIN) для тестирования.
-
Гляди.
-
и где она?
я что-то пропустила?
-
2-я таблица сверху - то что было,
3-я снизу - что с ней случилось после
ALTER TABLE tmp MODIFY id TINYINT(2) UNSIGNED NOT NULL, MODIFY parent_id TINYINT(1) UNSIGNED NOT NULL, MODIFY detail VARCHAR(37) NOT NULL, MODIFY cat_name ENUM(\'\',\'ISKRA AVTOELECTRIKA, Словения\',\'KOIVUNEN OY, Финляндия\',\'MAPCO AUTOTECHNIK GMBH, ФРГ\',\'OCAP S.P.A., Италия\',\'QUINTON HAZELL AUTOMOTIVE, Англия\') NOT NULL, MODIFY prim_col_name ENUM(\'\',\'V и A\',\'V и kW\',\'Карбюратор\',\'Номер BOSH\',\'Номер детали\',\'Примечание\',\'Размеры\') NOT NULL
-
Alexandr, извини, ты внимательно читаешь что пишут?
повторяю:
дай структуру твоей таблицы (это значит вывод SHOW CREATE TABLE, а не EXPLAIN) для тестирования.
-
fidget, извини, ты внимательно смотрела страницу?
повторяю:Alexandr:
2-я таблица сверху - то что было,
3-я снизу - что с ней случилось после
Вот ещё раз ссылка на всякий:
http://www.autodealer.ru/mysql_bug.php
Ладно вот ещё на всякий:
Запрос: SHOW CREATE TABLE tmp
Количество записей: 1Table Create Table
tmp CREATE TEMPORARY TABLE `tmp` ( `id` tinyint(2) unsigned NOT NULL default \'0\', `parent_id` tinyint(1) unsigned NOT NULL default \'0\', `detail` char(37) NOT NULL default \'\', `cat_name` char(33) NOT NULL default \'\', `prim_col_name` char(12) NOT NULL default \'\' ) TYPE=MyISAM
Запрос: SHOW CREATE TABLE tmp
Количество записей: 1Table Create Table
tmp CREATE TEMPORARY TABLE `tmp` ( `Љk ‹k ` tinyint(2) unsigned NOT NULL default \'0\', `‹k ` tinyint(1) unsigned NOT NULL default \'0\', `` varchar(37) NOT NULL default \'\', `cat_name` enum(\'\',\'ISKRA AVTOELECTRIKA, Словени\',\'\',\'KOIVUNEN OY, Финл\',\'нди\',\'\',\'MAPCO AUTOTECHNIK GMBH, ФРГ\',\'OCAP S.P.A., Итали\',\'\',\'QUINTON HAZELL AUTOMOTIVE, Англи\',\'\') NOT NULL default \'\', `prim_col_name` enum(\'\',\'V и A\',\'V и kW\',\'Карбюратор\',\'Номер BOSH\',\'Номер детали\',\'Примечание\',\'Размеры\') NOT NULL default \'\' ) TYPE=MyISAM
-
ой, извини плз, совсем невнимательная и нервная стала .. пораменять работу :-)
протестировала - у меня все ок с названиями столбцов. правда я на 4.0.13 тестировала.
-
Таблица валиться именно после INSERTов и UPDATEов, но только, примерно, раз в месяц.
Может ли повлиять на эту ошибку "Can\'t open file: \'d_anketa.MYI\'. (errno: 145)" то, что я использую так много полей в одной таблице? (см. ниже)
INSERT INTO d_anketa SET sex=\'1\', looksex=\'2\', for9=\'9\', myname=\'Рамиль\', email=\'ramil_rus@mail.ru\', pass=\'scorpion\',
ch_about=\'Просто хочу девушку\', placetime=\'2003-09-27\', height=\'175\', weight=\'60\', body=\'0\', eyes=\'0\', hair=\'0\',
hairtype=\'4\', zodiak=\'8\', marital=\'1\', child=\'1\', education=\'2\', url=\'http://\', religion=\'0\', ch_basic=\'\',
ch_dream=\'\', ch_pos=\'\', ch_neg=\'\', ch_title=\'\', ch_company=\'\', in_smoking=\'3\', in_alcohol=\'5\', in_food=\'\',
in_cook=\'\', in_drink=\'\', in_rest=\'\', in_liter=\'\', in_movie=\'\', in_job=\'\', in_about=\'\', need=\'\', city=\'19\',
birthday=\'1986-01-01\', data=\'2003-05-30\'
Есть ли предел количеству полей в одной таблице? Если есть, то сколько.
Может ли повлиять на эту ошибку то, что я делаю запрос INSERT не в том порядке, в котором расположены поля в БД ?
-
или я совсем не шарю, но разве можно делать так?:
INSERT INTO d_anketa SET sex=\'1\', looksex=\'2\',[.PHP]
я привык делать так:
[PHP]INSERT INTO table(field1,field1,... ) VALUES(\'$val1\', \'$val2\',...)
а SET вроде бы только к update\'y относится
-
Rel, можно.