In MySQL I want to clone certain databases. Is there such a thing as a
CREATE DATABASE LIKE
command?
I know
There is no such command.
But you can create a backup (SQL file) of your database, and then restore all objects in the new database.
Also, you can use GUI tools in dbForge Studio for MySQL (free express edition) - Backup or restore a database. It will help you quickly recreate database and its contents.
MySQLDump
This is just one another way of doing:
mysql> create database new_dbname;
mysql> select concat('create table
new_dbname.',TABLE_NAME,' like wings2020.',TABLE_NAME,'; insert into
new_dbname.',TABLE_NAME,' select * from ol_dbname.',TABLE_NAME,';')
from information_schema.tables where table_schema = 'old_dbname' into
outfile '/tmp/a.txt';
mysql> source /tmp/a.txt;
If you want to clone a database, my_database
for example, you'll want to run a mysql query and then run a command in the linux terminal:
mysql> CREATE DATABASE my_database_copy;
linux terminal (on the machine with the database):
mysqldump -u username -p my_database | mysql -u username -p my_database_copy
From there you'll likely get 2 "Enter password:" prompts....just input your password, press enter, and wait :)