web-dev-qa-db-ja.com

mysqlにデータがないデータベース構造をコピーします(空のテーブルを使用)

MySQLにデータなしでデータベース構造をコピーする方法はありますか。そのため、新しいデータベースはコピー元と同じですが、空のテーブルがあります。

いくつかの提案を得た後、コマンドを試しましたが、構文エラーが発生しました、_username = rootおよびpassword = nothing。デフォルトのものだと思います。私は次のコマンドを試しています、

mysqldump -u root -p -d xyz_db | mysql -u root -p -Dnew_db

私は何が欠けているか、コマンドで置き忘れていますか?

41
Pramod
mysqldump -u user -ppass -d olddb | mysql -u user -ppass -D newdb

新しいデータベースがすでに存在している必要があります。 mysqldumpコマンドの-dフラグは、データのコピーを防ぎます。

フラグ-pとパスワードの間にスペースはありません。

64
Raab

mysqldumpを使用してバックアップを取り、コマンドラインを使用してmysqlで復元できます。

データベースのバックアップ用

$ mysqldump -u root-pPassword -P3309 --routines --no-data testdb > "d:\dbwithnodata.sql"

データベースの復元用

$ mysql -u root-pPassword -P3309 newdb < "d:\dbwithnodata.sql"
8
Saharsh Shah

electrictboolbox.com/mysqldump-schema-only から:

データのないすべてのテーブルのデータベース構造をダンプする-dフラグを追加して、出力にデータを含めないようにします。「mydatabase」はダンプするデータベースの名前、「someuser」はログイン名ですデータベースへの接続に使用されます。次のコマンドは、指定されたMySQLデータベース内のすべてのテーブルのテーブル構造をダンプします。

$ mysqldump -d -u someuser -p mydatabase

-dフラグは、ダンプにデータを含めないことを示します。または、覚えやすいと思う場合は、代わりに--no-dataを使用できます。

$ mysqldump --no-data -u someuser -p mydatabase

-uフラグはユーザー名を示し、-pフラグはパスワードが提供されることを示します。を押すと、パスワードの入力を求められます。

または、コマンドラインでパスワードを指定できますが、-pフラグとパスワードの間にスペースがあってはなりません。たとえば、パスワードが「apples」の場合、次のようにします。

$ mysqldump --no-data -u someuser -papples mydatabase
$ mysqldump -d -u someuser -p mydatabase > mydatabase.sql # This will output to a sql file
1
lampwins

MYSQLデータベース構造をバックアップできます

mysqldump -u username –p  -d database_name > backup.sql

(パスワードがセキュリティリスクにつながるため、コマンドラインでパスワードを指定しないでください。MYSQLはデフォルトでパスワードを要求します。)そして、データベースにテーブルを作成することができます

mysql -u username -p new_database < backup.sql

これで、パイプを使用して最初のコマンドの出力を2番目のコマンドの出力として提供でき、backup.sqlは不要になります。

mysqldump -u username –p  -d database_name|mysql -u username -p new_database

のすべてのテーブルは、データなしでnew_databaseに作成されます。

1
Vinod Kumar

これを試してください:

$ mysqldump --no-data -h localhost -u root -p database_name > imported_db_name.sql
1
Phoenix