需求应用场景:
1.业务分离,需要首先备份相同的数据库等操作
2.克隆测试环境、线上环境等
以下是两种实现办法:
导入导出
如果不擅长命令的同学可以利用一些mysql管理工具(navicat,mysqladmin等)直接导出整个文件,然后从新建库,在将文件导入
如果数据比较大的话不建议这么搞,非常耗时。。
命令行克隆
举例,将sqldb的库复制一份到sqldb.bak库。
新建一个库sqldb.bak,操作忽略。。
参数:--add-drop-table 意思在每个CREATETABLE语句之前编写DROP TABLE语句。
具体mysqldump参数请移步。
linux命令行键入下面mysql命令/usr/local/mysql/bin/mysqldump sqldb -uadmin -p密码 --add-drop-table | /usr/local/mysql/bin/mysql sqldb.bak -uadmin -p
最后输入一遍密码即可,速度谁试过谁知道。。
如果报下面错误[root@8vnqvaZ ~]# /usr/local/mysql/bin/mysqldump sqldb -uadmin -p密码 --add-drop-table | /usr/local/mysql/bin/mysql sqldb.bak -uadmin -p
Enter password: mysqldump: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (using password: NO)
mysqldump: Got errno 32 on write
意思是你的mysql密码不允许明文输入,只需要在my.cnf下面配置一下备份账号即可。[mysqldump]
user=账号
password=密码