2017-07-11 17 views
0

MySQLをインストールした後、再インストールする前に、/var/lib/mysql/mydatabaseを別のディレクトリに移動してMySQLをインストールした後で復元する必要がありました。 私はMySQLをインストールした後、私はこのディレクトリに戻った。私はmysqlのコンソールにアクセスし、MySQLを再インストールした後のデータベースの復元

SHOW DATABASES;

を使用する場合には、データベースのリストを返すと「MyDatabaseという」をリストの間です。 私は「MyDatabaseという」を使用してに切り替えて

SHOW TABLES;

を使用する場合は、テーブルのリストを示しているが、私は任意のSELECTコマンドを実行するとき、私はこのエラーを取得:

ERROR 1146 (42S02): Table 'mydatabase.mytable1' doesn't exist

当初から - ました/var/lib/mysql/<DATABASE_NAME>のみをバックアップしてデータベースのデータを復元するだけで十分ですか?はいの場合、私はこの問題を 'テーブルは存在しません'と修正しようとする可能性がありますか?

MySQLのバージョンは、OSがデフォルトのストレージエンジンはInnoDBのあるUbuntuの16.04

+1

ファイル 'ibdata1'を逃したとき(良いアイデアは 'ib_logfile {0,1}'だったでしょう)、あなたのテーブルはエンジンInnoDB(5.6 IIRC以降のデフォルトエンジン)でした。特に、 'innodb-file-per-table'を設定していないときには、かなり嫌になりました。 – fancyPants

+0

@fancyPants 'innodb-file-per-table'は1に設定されていましたが、ibdata1に関しては保存していないので、データを復元する機会はないと思いますか? – XZen

+1

ここに行く:https://dba.stackexchange.com/questions/57120/recover-mysql-database-from-data-folder-without-ibdata1-from-ibd-files – fancyPants

答えて

1

のMySQL 5.7で、5.7です。これにより、ibdata、ib_logfile0、およびib_logfile1にデータが格納されます。これらのファイルをバックアップしていない場合、データを復元することはできません。

データベースファイルを移動する代わりに、mysqldumpユーティリティを使用することをお勧めします。

テーブルごとに.ibdファイルにInnoDBテーブルを格納できるinnodb-file-per-tableを使用する方が良いです。

関連する問題