2011-08-11 3 views
2

私はスレーブデータベースにプロダクションとは異なる名前を付けています。 (私たちはprod databaseとスレーブdatabase_slaveと呼ぶ)MySQLのスレーブは新しいデータベースのビューに本番データベースの名前を付けます

スレーブから(私がdevのコピーを作るために)行うmysqldumpを実行すると、2つのデータベースビューにデータベース名が付けられている。手動で編集することなくダンプファイルを使用して別のコピーを作成することはできません。

私が本番コピーから同じmysqldumpを実行すると、すべてがきれいになります。だから何らかの理由でスレーブがこれらの2つのビューを間違って作成しました。 (。レプリケーションが確立される前に、他の4つのビューが、私は違いを説明すると信じている、作成された私は、複製が同期しているを確認しました。)スレーブからのmysqldumpの

スニペット:の

/*!50001 VIEW `database_slave`.`view_company` AS select `database`.`company`.`id` AS `id`, 
     `database`.`company`.`name` AS `name`,`database`.`company`.`state` AS `state`, 

同じスニペットmysqldumpは生産中です(niceとclean):

/*!50001 VIEW `view_company` AS select `company`.`id` AS `id`, 
     `company`.`name` AS `name`,`company`.`state` AS `state`, 

私はこれをprodからスレーブにダンプすることなく修正できますか?

replicate-rewrite-dbオプションを使用しています。

答えて

0

誰かがこれを探しに来る場合、私が学んだのは、mysqlビューがデータベース名をそのまま反映しているということです。したがって、replicate-rewrite-dbオプションを使用してスレーブに異なる名前を付けると、ビューは正しく動作しません。

これを回避するには、replicate-rewrite-dbフラグを使用しないでください。

1

スレーブデータベース(およびすべてのデータベースオブジェクト)は、マスターサーバーと同じ名前で呼ばれることが想定されます。

+0

デフォルトではtrueですが、[replicate-rewrite-db](http://dev.mysql.com/doc/refman/5.0/en/replication-options-slave.html#option_mysqld_replicate-rewrite -db)。 23のテーブルと4つのビューが正常に動作するとします。ビューは2つしかありません。 –

+0

そのオプションについて知りませんでした。 – Mchl

+1

また、あなたはこの質問をhttp://serverfault.com/ – Mchl

関連する問題