MySQLにデータなしでデータベース構造をコピーする方法はありますか。そのため、新しいデータベースはコピー元と同じですが、空のテーブルがあります。
いくつかの提案を得た後、コマンドを試しましたが、構文エラーが発生しました、_username = root
およびpassword = nothing
。デフォルトのものだと思います。私は次のコマンドを試しています、
mysqldump -u root -p -d xyz_db | mysql -u root -p -Dnew_db
私は何が欠けているか、コマンドで置き忘れていますか?
mysqldump -u user -ppass -d olddb | mysql -u user -ppass -D newdb
新しいデータベースがすでに存在している必要があります。 mysqldumpコマンドの-d
フラグは、データのコピーを防ぎます。
フラグ-p
とパスワードの間にスペースはありません。
mysqldumpを使用してバックアップを取り、コマンドラインを使用してmysqlで復元できます。
データベースのバックアップ用
$ mysqldump -u root-pPassword -P3309 --routines --no-data testdb > "d:\dbwithnodata.sql"
データベースの復元用
$ mysql -u root-pPassword -P3309 newdb < "d:\dbwithnodata.sql"
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
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
に作成されます。
これを試してください:
$ mysqldump --no-data -h localhost -u root -p database_name > imported_db_name.sql