SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.06.2011 08:09:59

Went
Участник
Зарегистрирован: 21.06.2011
Сообщений: 4

Проблема с восстановлением базы

Добрый день!

Неизвестно из-за чего попортилась база - phpmyadmin пишет, что она "in use". REPAIR TABLE не помогает. Подскажите пожалуйста, что в таком случае делать?

Неактивен

 

#2 21.06.2011 15:50:11

Went
Участник
Зарегистрирован: 21.06.2011
Сообщений: 4

Re: Проблема с восстановлением базы

Пробовал mysqlcheck и myisamcheck - безрезультатно
Кто-нибудь знает еще способы?

Неактивен

 

#3 21.06.2011 16:27:20

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблема с восстановлением базы

Код:

root@silentia:/var/lib/mysql/problem_base# myisamchk -rf index_sotrud.MYI
- recovering (with sort) MyISAM-table 'index_sotrud.MYI'
Data records: 163
- Fixing index 1
Key 1 - Found wrong stored record at 0
Delete link points outside datafile at 10892
Delete link points outside datafile at 13780
Delete link points outside datafile at 17092
Delete link points outside datafile at 17476
silentia:~/tmp$ mysql -A problem_base
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.54-1ubuntu4 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

[silentia] root problem_base > SELECT * FROM index_sotrud LIMIT 1;
+----+----------------------------+------+-------+-------+--------+------+------+------------+-------------------------+------------+------------+
| id | fio                        | dolg | otdel | email | telr   | telv | tels | date       | addres                  | otsutb     | otsute     |
+----+----------------------------+------+-------+-------+--------+------+------+------------+-------------------------+------------+------------+
(personal data hidden)
+----+----------------------------+------+-------+-------+--------+------+------+------------+-------------------------+------------+------------+
1 row in set (0.00 sec)

Перед починкой и после нее нужно сделать FLUSH TABLES WITH READ LOCK (критично).

Неактивен

 

#4 21.06.2011 16:43:57

Went
Участник
Зарегистрирован: 21.06.2011
Сообщений: 4

Re: Проблема с восстановлением базы

Что-то я не понял. Используя эту команду у меня только появилось новое сообщение об ошибке при попытке выполнить REPAIR TABLE  - "Can't execute the query because you have a conflicting read lock"

Напишите пожалуйста поподробнее, какими командами у Вас получилось восстановить табличку?
-сорри, не посмотрел на первые две строки, сейчас попробую

Или я делаю совсем не то?

Отредактированно Went (21.06.2011 16:47:36)

Неактивен

 

#5 21.06.2011 17:02:01

Went
Участник
Зарегистрирован: 21.06.2011
Сообщений: 4

Re: Проблема с восстановлением базы

Спасибо. Кажется получилось. Только с кодировкой проблемы возникли.

Неактивен

 

#6 21.06.2011 17:12:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблема с восстановлением базы

Кодировка в Вашей табличке битая, да. Реально данные в 1251, а в метаданных
написано utf8. В статье написаны методы решения этой проблемы.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson