2011-05-25 1 views
6

Я использовал mysqldump для экспорта моей базы данных, а затем импортировал ее в MySQL на другом сервере. Теперь я могу видеть все мои таблицы, если я делаю «показывать таблицы», но я не могу выбрать или описать любой из них.Таблицы InnoDB существуют в MySQL, но говорят, что они не существуют после копирования базы данных на новый сервер.

ОШИБКА 1146 (42S02): Таблица 'mydatabase.user' не существует

Все мои таблиц InnoDB. Я видел одну проблему у людей, где они использовали old_passwords, поэтому я явно установил это значение в 0 в my.cnf, и я убедился, что все пароли в таблице mysql имеют 41 шестнадцатеричную цифру, как и для новых паролей.

+0

Вы уверены, что восстановление сделано без ошибок? Попробуйте сделать восстановление с помощью одной транзакции, транзакция остановится на ошибках. – Igor

+0

Это работало некоторое время после того, как я скопировал его, а затем он только начал говорить, что таблицы не существует. Но я не могу создать таблицу, потому что она существует ... Проблема в том, что после импорта произошли несколько изменений в данных, которые произошли с этой копией, поэтому мне нужно иметь доступ к ним по крайней мере. Файл .frm для этой таблицы точно такой же, как рабочая копия базы данных. – mrgordon

+0

Кажется, у вас проблемы со структурой таблицы. Не могу с этим справиться. Попробуйте новое восстановление с включенным журналом и опубликуйте здесь любую ошибку из журнала. – Igor

ответ

7

Причина «показать таблицы»; работает, потому что mysqld будет проверять каталог базы данных только для файлов .frm. Пока они существуют, он видит определение таблицы.

Если вы импортировали данные в MySQL и происходит это сообщение об ошибке, первое, что я сразу же будет выполнить эту команду: (КСТАТИ Это MySQL 5.1.45, но работает в MySQL 5.x в любом случае)

mysql> show engines; 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| Engine  | Support | Comment              | Transactions | XA | Savepoints | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| InnoDB  | YES  | Supports transactions, row-level locking, and foreign keys  | YES   | YES | YES  | 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables       | NO   | NO | NO   | 
| BLACKHOLE | YES  | /dev/null storage engine (anything you write to it disappears) | NO   | NO | NO   | 
| CSV  | YES  | CSV storage engine            | NO   | NO | NO   | 
| MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables  | NO   | NO | NO   | 
| FEDERATED | NO  | Federated MySQL storage engine         | NULL   | NULL | NULL  | 
| ARCHIVE | YES  | Archive storage engine           | NO   | NO | NO   | 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance   | NO   | NO | NO   | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
8 rows in set (0.00 sec) 

Если сервер, на который вы импортировали данные, говорит, что InnoDB отключен, у вас есть большая проблема. Вот то, что вы должны сделать:

1) Отбросьте все данные из New Import DB Server,

2) Cleanup InnoDB Setup

3) Запускаем SHOW ДВИГАТЕЛЕЙ; и убедитесь, что InnoDB полностью работоспособен !!!

4) Обновить туздЫшпр на новый сервер импорта

Дайте ему попробовать !!!

2

У меня была эта проблема, когда я перешел с сервера Windows на сервер Linux. Таблицы - это файлы, а файлы окон - нечувствительные к регистру, но файлы linux чувствительны к регистру.

В моем приложении, в sql-запросах, несколько раз я использовал прописные теги и другие временные строчки, поэтому иногда я получал тот же результат, что и вы.

0

I мой случай был SQLCA.DBParm параметр.

Я использовал SQLCA.DBParm = "Databse = "sle_database.text"", но он должен быть

SQLCA.DBParm = "Database='" +sle_database.text+ "'" 

Объясните: вы собираетесь объединить три строки:

a) Database='    - "Database='" 

b) (name of the database) - +sle_database.text+ 

c) ' - "'" 
Смежные вопросы