1

Тема: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Раньше стояла какая-то более ранняя версия MySQL и соответственно phpMyAdmin.
Я решил вообще всё полностью обновить Apache, PHP, MySQL и phpMyAdmin. Но по неопытности, потому что в этом деле я новичок, забыл экспортировать базы данных в файл.
У меня есть все папки и файлы .frm .MYD .MYI, соответственно это таблицы. Раньше помню можно было положить их в нужную папку и всё работало. Но сейчас я даже не могу найти где хранятся эти таблицы... Помогите пожалуйста вернуть мою базу данных.

Веб-сервер
Apache/2.2.11 (Win32) PHP/5.2.9-2
Версия MySQL-клиента: 5.0.51a
PHP расширение: mysqli

phpMyAdmin
Информация о версии: 3.1.5

MySQL
Сервер: localhost via TCP/IP
Версия сервера: 5.1.34-community

2

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Barhan
Скопируйте файлы .frm и .MYD .MYI в каталог с именем БД находящийся в папке data (C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data). После чего перезапустите сервер MySQL.

Либо, как более предпочтительный вариант, зайдите в phpMyAdmin и выполните запрос вида:

RESTORE TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory';

Перечислите все таблицы вместо tbl_name и укажите полный путь к файлам.

3

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Сделал первым способом, перезапустил mySQL, таблицы теперь видит, но обратится к ним не могу.
Пишет:
Ответ MySQL: 
#1034 - Incorrect key file for table 'characters'; try to repair it

Как это можно исправить?

4

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Запрос REPAIR TABLE characters выдает:

Table     Op     Msg_type     Msg_text
tfa.characters    repair    Error    Incorrect key file for table 'characters'; try to repair it
tfa.characters    repair    error    Corrupt

5

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Barhan
Даже не знаю почему такая ошибка, возможно это уже не восстановить. Но если вы знаете структуру данной таблицы, можно попробовать создать ее, и затем подменить .MYD файл. Может сработает. Структура должна быть полностью идентичной.

Можно также попробовать удалить .MYI файл и выполнить запрос REPAIR TABLE. Это должно создать новый файл .MYI.

6

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Покопался со всем этим делом.. всё таки получилось через запрос RESTORE.. Восстановил, всё, что нужно, спасибо большое тебе.

И еще вопрос, конечно уже не в тему, но всё же спрошу здесь, прочитал, что:
В новых версиях MySQL (начиная с 4.1.0) изменился порядок работы с национальными кодировками, поэтому старый код может вызывать появление в таблице базы данных знаков вопроса '????????' вместо русского текста. Для того, чтобы этого не возникало, в начало PHP-скрипта, после установки соединения с базой данных, следует поместить следующие строки:
<?php
  mysql_query ("set character_set_client='cp1251'");
  mysql_query ("set character_set_results='cp1251'");
  mysql_query ("set collation_connection='cp1251_general_ci'");
?>

Я думаю это можно решить как-то покопавшись с кодировками в самом mySQL через phpMyAdmin, но что-то не выходит всё равно.
Хотя этот способ работает, но для себя хотел бы узнать как это можно реализовать по другому.

7

Re: Есть файлы .frm .MYD .MYI, как импортировать в БД?

Barhan
Есть два подхода для установки кодировки соединения с MySQL: глобальный и локальный.

Глобальный.
Отредактируйте конфигурационный файл MySQL следующим образом:

[mysql]
default-character-set=cp1251
[mysqld]
init-connect="SET NAMES cp1251"
default-character-set=cp1251

Локальный:
Во всех скриптах, сразу после функции mysql_connect следует добавить строку:

mysql_query('SET NAMES cp1251');

В любом случае, кодировки таблиц в БД должны быть cp1251.