前言
当项目投入使用后,还在同步进行开发时,需要将数据库备份一份,在备份数据库中操作,保证开发的同时项目可以正常投入使用。
database的复制
基于服务器上项目的某一个版本进行开发时,希望将其数据库直接复制一份。
参考一只小C。
首先在服务器上进入mysql。
新建一个database,“new”(这个随便取名)
CREATE DATABASE `new` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
之后退出mysql回到shell,将旧数据库“old”复制到新数据库。
这里的复制指new和old是完全一模一样的,如果后续对new做了一些修改,执行以下语句会将new的修改全部覆盖,所有数据和old完全相同。
mysqldump old -u root -p123456 | mysql new -u root -p123456
-u后边的是mysql的账户名,-p后边的是账户的密码。如果设置过密码的话可以将-p去掉,以免shell的历史记录泄露。
mysqldump old -u root | mysql new -u root
表的复制
开发完成后,如果某一个表涉及到了一些修改,或者新增了表,希望将表复制到原来的database。
在服务器中进入mysql,比如想把A database中的C表拷贝到B database中(这时B中没有C表)。
use B;
create table C as select * from A.C;