Страница 3 из 5

[FAQ] Пример ремонта (починки) таблицы

Добавлено: 05.02.2005 16:05
crash
1. Вариант 1 с использованием phpmyadmin.
Заходим в phpmyqadmin. Если у нас несколько баз, то выбираем в левом фрейме базу с форумом, если база одна, то она будет стоять по умолчанию. В результате будем иметь:
Изображение
В правом фрейме ставим галочки напротив таблиц, которые надо чинить (ремонтировать). Получаем
Изображение

В правом фрейме спускаемся в самый низ и из выпадающего меню выбираем "Починить таблицу"
Изображение

2. Вариант 2 с использованием phpmyadmin.
В право фрейме нажимаем на ссылку SQL
Изображение
В окне запроса (допустим чиним таблицы phpbb_categories, phpbb_confirm, phpbb_ranks, phpbb_search_results, phpbb_topics) набираем:
REPAIR TABLE `phpbb_categories` , `phpbb_confirm` , `phpbb_disallow` , `phpbb_ranks` , `phpbb_search_results` , `phpbb_topics` и нажимаем кнопку "Пошел"
Изображение

3. Вариант при использовании доступа к командной строке сервера (Unix сервер):
а. заходим на сервер в командную строку
б. набираем в командной строке команду: mysql -h DBhostname -u username -ppassword database_name
c. если получаем что-то в виде
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1122 to server version: 3.23.39

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
то мы зашли в управление БД. Пишем команду

Код: Выделить всё

REPAIR TABLE `phpbb_categories` , `phpbb_confirm` , `phpbb_disallow` , `phpbb_ranks` , `phpbb_search_results` , `phpbb_topics`;

и жмем ENTER
Выход из командного режима MySQL делаем с помощью exit

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 22.06.2008 0:55
Rayden
почему жулики? Скорее всего ты так объяснил, что им стало понятно - тебе надо восстановить из бекапа. Надо объяснять свои запросы так, чтоб не было разночтения.

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 06.10.2008 14:48
Front
Ребят, у меня такой вопрос, с REPAIR TABLE все предельно ясно, но вот можно ли как-то автоматизировать этот процесс?
У меня уже второй раз валятся sessions и users, и по закону подлости делают это когда я уезжаю на несколько дней, и не имею инета, и знать не знаю про крэш, получается что форум может висеть пару дней... :(

Я уже воспользовался вот этим скриптиком:
http://www.phpbb.com/kb/article/fixing- ... rom-mysql/

и вставил ссылку на него прямо в сообщение ошибки (которое "phpBB : Critical Error" и т.д.) , получилось типа "Ошибка БД, Попробуйте пройти по этой ссылке...", т.е. получается что первый юзер увидевший ошибку имеет простую возможность починить таблицы.
Вот вопрос - безопасно ли это? И можно ли как-то сделать чтобы подобный скрипт запускался автоматом при крушении базы?

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 06.10.2008 21:29
Палыч

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 07.10.2008 13:41
Front
Палыч, спасибо! Крон наверное да, хороший вариант.

А может можно так сделать чтобы в месте где при ошибке от БД выдается сообщение, вместо этого текста об ошибке инклюдом запускать скрипт починки таблиц?

Например у меня в sessions.php есть такое:

if (!($result = $db->sql_query($sql)))
{
message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
}

кто в PHP хорошо шарит, может сделаете на общее благо? :)

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 07.10.2008 20:08
Палыч
Front
а не пробовали запустить поиск по файлам по message_die, например?
Могу поспорить, найдёте более 500 вхождений. 8-)

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 07.10.2008 21:08
Front
Т.е. выходит что лучше использовать крон и не лохматить бабушку? :)

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 08.10.2008 10:55
Alek$
Front
да, именно так и выходит.

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 15:50
Lancerrr
приветствую всех.
Заранее прошу прощения, если не в эту тему.

Сегодня захожу на форум и вместо форума вижу:

phpBB : Critical Error

Error creating new session

DEBUG MODE

SQL Error : 1062 Duplicate entry '-1' for key 2

INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('ee09cb678a5924c1a9a81f074c88ddad', -1, 1229257867, 1229257867, '5d54551a', 0, 0, 0)

Line : 187
File : sessions.php

Это что , тоже какая-то таблица сломана? Какая именно?
Как восстановить нормальную работу? В принципе, есть бекап..

Заранее благодарен

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 15:58
crash
Lancerrr писал(а):Какая именно?
а вы не пробовали прочитать ошибку?
Lancerrr писал(а):phpbb_sessions
Очистите таблицу

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:05
Lancerrr
Очистить от чего?
можно подробнее и пошагово?
Как это сделать через PHPmyADMIN ?
Заранее благодарен.

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:06
crash
Lancerrr писал(а):Очистить от чего?
от содержимого
Lancerrr писал(а):Как это сделать через PHPmyADMIN ?
так же как и чинить, только выбрать очистить

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:20
Lancerrr
Я сейчас зашел в эту таблицу, там порядка 178 строк - 6 страниц по 30 строк , так вот три первых страницы видны, три последних недоступны вместо них ошибка: мол таблица разрушена и нуждается в восстановлении.

Очищать?
На что повлияет очистка этой таблицы?

Заранее спасибо.

И еще - отчего эта беда могла приключиться?

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:24
crash
Lancerrr писал(а):Очищать?
На что повлияет очистка этой таблицы?
чините и очищайте.
Lancerrr писал(а):На что повлияет очистка этой таблицы?
она станет пустой
Lancerrr писал(а):И еще - отчего эта беда могла приключиться?
вам привести все миллион причин?

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:34
Lancerrr
Восстановил и почистил - вместо 178 строк стало 2 строки

вхожу на форум и вижу новую ошибку:
Could not obtain user/online information

DEBUG MODE

SQL Error : 145 Table './ginecologby1/phpbb_users' is marked as crashed and should be repaired

SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip FROM phpbb_users u, phpbb_sessions s WHERE u.user_id = s.session_user_id AND s.session_time >= 1229261023 ORDER BY u.username ASC, s.session_ip ASC

Line : 108
File : page_header.php

Насколько я понимаю, сейчас дело уперлось в таблицу phpbb_users , которая тоже повреждена и нуждается в реанимации.
Чинить ее или надежнее будет обратиться к бекапу и поднять форум из него?

Re: [FAQ] Пример ремонта (починки) таблицы

Добавлено: 14.12.2008 16:35
crash
Lancerrr
чините все таблицы