2009-06-09 14 views
0

LinuxのサーバーからWindowsのサーバーにMySQL DBをコピーする必要があります。私はmysqldumpを使ってみましたが、Stored Procsは含まれていません。私はあなたがmysqldumpの "--routines" オプションをしたいなど、すべて、すなわち、スキーマ、データ、保存されprocsの、トリガーをコピーするMySql DBをあるサーバーから別のサーバーにコピー

おかげで、 ドン

答えて

2

をしたいです。ダンプされたデータベースから

ダンプストアドルーチン(プロシージャおよび 関数):--routinesフラグのドキュメントから

。 このオプションを使用するには、mysql.procテーブルに対してSELECT 特権が必要です。 - ルーティンを使用して生成された出力には、ルーチンを再作成するためのCREATE PROCEDURE文とCREATE FUNCTION文が含まれています。 ただし、これらの ステートメントには、ルーチンの作成や 変更のタイムスタンプなどの属性 は含まれていません。これは、 を意味します。ルーチンがリロードされると、 リロード時間に等しい タイムスタンプで作成されます。

あなたが --routinesを使用していない、 元の タイムスタンプ属性で再作成するルーチンが必要な場合。代わりに、mysql.procテーブル の内容をダンプして、 に mysqlデータベースの適切な特権を持つMySQLアカウントを使用して直接ロードしてリロードしてください。

このオプションは、MySQL 5.1.2で追加されました。 その前に、ストアドルーチンは がダンプされていません。ルーチンのDEFINER値は、MySQL 5.1.8までダンプされた ではありません。これは、ルーチンが がリロードされたときに5.1.8より前にある を意味します。 リロードユーザーに設定された定義者で作成されます。 ルーチンを元の 定義者で再作成する必要がある場合は、 の内容をダンプして読み込み、前述の という名前のmysql.procテーブルを直接ロードします。

2
mysqldump -u root -p --routines --databases io \ 
| sed -e "s/;;/\$\$/g" \ 
> io.sql 

ダンプしてみてください。インポートコマンド:

mysql -u root -p --fource --databases io < io.sql 
関連する問題