Перенос БД MySQL копированием /var/lib/mysql/*

Когда помирал сервер, успел скопировать директории /etc/ и /var/ с него на свой компьютер. Теперь пытаюсь восстановить БД, на ресурсах в гугле говорят что так делать можно, но у меня возникла проблема. В выводе show tables я вижу таблицу, скажем, ls_banner (livestreet), а при попытке сделать из нее select мускуль говорит, что такой таблицы нет. Права и владелец на /var/lib/mysql и вложенные директории выставлены правильно. В чем может быть проблема?
7 февраля в 14:07
2
RankoR 12,1

отсортировано по дате по оценке
ответы (9)

+1
taliban #
dev.mysql.com/doc/refman/5.0/en/check-table.html Там еще есть пару инструментов для проверок, не делали?
ls_adminban |
| ls_adminips |
| ls_adminset |
| ls_banner |
| ls_banner_pages |
| ls_banner_place_holders |
| ls_banner_stats |
| ls_blog |
| ls_blog_user


mysql> check table ls_banner;
+-------------------------+-------+----------+-----------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------------+-------+----------+-----------------------------------------------+
| xxxx.ls_banner | check | Error | Table 'xxxx.ls_banner' doesn't exist |
| xxxx.ls_banner | check | status | Operation failed |
+-------------------------+-------+----------+-----------------------------------------------+
2 rows in set (0.00 sec)
RankoR, 7 февраля в 14:18
–5
MindWin #
Наиболее простой перенос баз данных осуществляется через phpMyAdmin.
Входишь в базу данных, выбираешь все веточки, нажимаешь в меню «Экспорт».

А когда необходимо имортировать, создаешь новую базу, входишь в нее, нажимаешь «Импорт».
Я так переношу Wordpress сайтики, всегда надежно, беспроблемно, и очень быстро.
mysqldump тогда уж ;)
Я стараюсь избегать установки лишнего софта, тем более, смотрящего веб-мордой наружу. А phpmyadmin это то еще решето, все же.
RankoR, 7 февраля в 14:50
Если размер базы данных велик например более 100 МБ phpmyadmin не поможет. sanchez, 7 февраля в 15:01
2 sanchez. Там специально для этого есть опция — выгружать в архиве. Например bz2. 500 мб база ужимается в 80 мб. Perkov, 7 февраля в 15:05
рукалицо.jpg stix, 7 февраля в 16:09
+1
Nc_Soft #
+1
Aleksey_M #
Файлы innodb точно сохранились и прицепились к новоми серверу?
+1
SchrodingersCat #
Проверьте, действительно ли физически для данной таблицы присутствуют файлы с расширениями .MYD, .MYI и .frm. Скорей всего — нет, собственно в этом и будет проблема :)
Таблица случайно была не InnoDB?
Присутствуют, см. ниже. Вроде InnoDB, по-моему LiveStreet именно с ним работает. RankoR, 8 февраля в 17:03
Таблицы были MyISAM, иначе откуда взяться файлам MYI, FRM, MYD ;) pietrovich, 9 февраля в 02:45
0
MindWin #
Кто мне объяснит за что мне дали минусы, и за что этим парням дали плюсы?
Вы предложили неграмотное решение. Опытные администраторы не используют phpmyadmin и прочие визуальные обёртки над отличными консольными приложениями, тем более на продакшене. Во-первых, есть удаленные средства — MySQLWorkbench, если нужны рюшечки, а во-вторых, консоль в умелых руках значительно удобнее.

Второй повод — человек не спрашивал как ему перенести с выгрузкой, ему нужно перенести копированием директории, т.к. у него сдох сервер и он уже не может на нём запустить выгрузку.
Litiy, 8 февраля в 02:07
+3
pietrovich #
Приходилось перетягивать таким образом базы не единожды, проблем не возникало.

ls -l /var/lib/mysql/DATABASENAME не помешал бы, да.

Я пока вижу несколько возможных причин:
— таблицы были innodb и вы их не прикрутили
— таблицы были myisam, но есть косяк с правами на уровне файловой системы (если на уровне прав в mysql все ок)
— перетащили на другую версию мускула (однажды был мелкий затык при переносе с 5.0 на 5.x, емнип)

Сыпьте подробности, будет над чем подумать.
# ls -lah | head
total 2.0M
drwxr-xr-x. 2 mysql mysql 12K Feb 7 13:50 .
drwxr-xr-x. 4 mysql mysql 4.0K Feb 8 13:04 ..
-rw-r--r--. 1 mysql mysql 8.6K Feb 7 13:49 cms_actions.frm
-rw-r--r--. 1 mysql mysql 8.9K Feb 7 13:49 cms_actions_log.frm
-rw-r--r--. 1 mysql mysql 48 Feb 7 13:49 cms_actions_log.MYD
-rw-r--r--. 1 mysql mysql 5.0K Feb 7 13:49 cms_actions_log.MYI
-rw-r--r--. 1 mysql mysql 2.0K Feb 7 13:49 cms_actions.MYD
-rw-r--r--. 1 mysql mysql 3.0K Feb 7 13:49 cms_actions.MYI
-rw-r--r--. 1 mysql mysql 8.7K Feb 7 13:49 cms_banlist.frm


Версия MySQL — 5.1 (CentOS x64), до этого был Debian 6 stable, версию не смотрел.
RankoR, 8 февраля в 15:39
Думается мне, от вас хотели получить полный листинг, а не обрезанный head'ом. AterCattus, 8 февраля в 22:18
Однако похоже что перекатили со свежей версии на старую. Можно у вас попросить парочку файликов, в которых нет конфиденциальной информации, на препарацию? pietrovich, 9 февраля в 02:43
Да, спасибо, напишите, что именно нужно. RankoR, 9 февраля в 17:41
0
strib #
1) покажите вывод SHOW CREATE TABLE table
2) Если ENGINE=MyISAM, то пробуйте ввытягивать данные из старого сервера или принимайте соболезнования
3) Если InnoDB, то надо искать файл с данными, который определяется параметром innodb_data_file_path в конфиге (my.cnf). Если используется этот движек, то MySQL хранит в /var/lib/mysql/DATABASENAME ddl таблиц, а сами данные в другом месте.
Удачи.
SHOW CREATE TABLE ls_banner;
ERROR 1146 (42S02): Table 'yarusskiy_org.ls_banner' doesn't exist
RankoR, 8 февраля в 21:54
0
RankoR #
Что интересно, при тех же условиях на таком же Debia'е, с которого сливалось, оно в точности так же не работает :)

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