在 Linux CLI 中复制 MySQL 数据库而不导出 SQL 文件
Duplicate MySQL Database in Linux CLI without Exporting an SQL File
我有一个 MySQL 数据库,我想使用 Ubuntu Linux CLI 复制它,而无需先下载 MySQL 文件。我尝试了以下命令:
mysql -uroot -e'mysql转储 -uroot db_old | mysql -uroot 备份 db_new;'
但是出现了这个错误:
第 1 行的错误 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解要使用的正确语法。
我做错了什么?我正在寻找的是要创建的 db_new 包含与 db_old 相同的数据(换句话说,复制 db_old 并将新数据库命名为 db_new,全部在一条命令,无需将数据导出到文件)。
首先,创建新数据库
mysql -uroot -pyourpasswd -e "Create database db_new;"
然后运行如下(不用执行"-e")
mysqldump -uroot -pyourpasswd -n db_old | mysql -uroot -pyourpasswd db_new;
来自手册页:
mysqldump 对于通过复制数据填充数据库也非常有用
从一个 MySQL 服务器到另一个:
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
“-n”选项是“--no-create-db”的缩写
如果您的 root 连接不需要密码(不推荐),请从所有语句中删除“-pyourpasswd”
我有一个 MySQL 数据库,我想使用 Ubuntu Linux CLI 复制它,而无需先下载 MySQL 文件。我尝试了以下命令:
mysql -uroot -e'mysql转储 -uroot db_old | mysql -uroot 备份 db_new;'
但是出现了这个错误: 第 1 行的错误 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解要使用的正确语法。
我做错了什么?我正在寻找的是要创建的 db_new 包含与 db_old 相同的数据(换句话说,复制 db_old 并将新数据库命名为 db_new,全部在一条命令,无需将数据导出到文件)。
首先,创建新数据库
mysql -uroot -pyourpasswd -e "Create database db_new;"
然后运行如下(不用执行"-e")
mysqldump -uroot -pyourpasswd -n db_old | mysql -uroot -pyourpasswd db_new;
来自手册页:
mysqldump 对于通过复制数据填充数据库也非常有用 从一个 MySQL 服务器到另一个:
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
“-n”选项是“--no-create-db”的缩写
如果您的 root 连接不需要密码(不推荐),请从所有语句中删除“-pyourpasswd”