Vraag database-structuur kopiëren zonder gegevens in mysql (met lege tabellen)


Is er een manier om de databasestructuur zonder gegevens te kopiëren in MySQL, zodat de nieuwe database dezelfde is als waaruit wordt gekopieerd, maar met lege tabellen.

Nadat ik een paar suggesties had gekregen, probeerde ik de opdracht, maar ik krijg een syntaxisfout, mijn username = root en password = nothing. Ik denk dat de standaard is. Ik probeer het volgende commando te volgen,

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

wat ik mis of misplaats in het bevel?


37
2018-01-01 04:57


oorsprong


antwoorden:


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

De nieuwe database moet al bestaan. De -d vlag in de opdracht mysqldump voorkomt het kopiëren van gegevens.

Er is geen spatie tussen de vlag -p en het wachtwoord.


57
2018-01-01 04:59



U kunt een back-up maken met mysqldump en herstel met mysql via de commandoregel.

Voor back-updatabase

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

Voor het herstellen van de database

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

8
2018-01-01 05:40



U kunt een back-up van uw MYSQL-databasestructuur maken met

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

(U moet geen wachtwoord opgeven op de opdrachtregel omdat dit leidt tot beveiligingsrisico's. MySQL vraagt ​​standaard om een ​​wachtwoord.) En u kunt in Tabellen tabellen maken met

mysql -u username -p new_database < backup.sql

Nu kun je pijp gebruiken om de uitvoer van het eerste commando als uitvoer voor het tweede commando te geven en je hebt het niet langer nodig backup.sql

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

Alle tabellen in worden aangemaakt in new_database zonder gegevens.


1
2017-09-09 16:58



Probeer deze:

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

1
2018-02-08 09:43



Van electrictboolbox.com/mysqldump-schema-only:

De databasestructuur dumpen voor alle tabellen zonder gegevens Voeg de vlag -d toe om aan te geven dat er geen gegevens moeten worden opgenomen in de uitvoer, zoals "mydatabase" is de naam van de te dumpen database en "someuser" is de inlognaam die wordt gebruikt om verbinding te maken met de database. Met de volgende opdracht wordt de tabelstructuur gedumpt voor alle tabellen in de opgegeven MySQL-database:

$ mysqldump -d -u someuser -p mydatabase

De vlag -d zegt niet om gegevens in de dump op te nemen. Als alternatief kunt u --no-data gebruiken als u dat gemakkelijker te onthouden vindt:

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

De vlag -u geeft de gebruikersnaam en de vlag -p aan dat een wachtwoord wordt verstrekt. Nadat u op drukt, wordt u om het wachtwoord gevraagd.

Als alternatief kan het wachtwoord worden verstrekt op de opdrachtregel, maar er mag geen spatie tussen de vlag -p en het wachtwoord zijn. Als het wachtwoord bijvoorbeeld 'appels' is, doet u dit:

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

1
2018-01-01 05:00