作为一名快乐的小运维,导出导入数据是一项简单且必备的技能,但是参数不对的话也是会出现运维事故的,到时候倒个数据锁表业务访问不了,领导提着40米的大刀到走到你面前说让你先跑39米 嘿嘿。
导出:
mysqldump -uroot -p -t --skip-extended-insert --complete-insert --single-transaction --set-gtid-purged=OFF --default-character-set=utf8 schema >schema.sql
导入:
use schema ;source /root/schema.sql
要是要导出的schema太大,几十上百G,磁盘空间紧张还可以这样导出、导入。
导出:
mysqldump -uroot -p -t --skip-extended-insert --complete-insert --single-transaction --set-gtid-purged=OFF --default-character-set=utf8 schema >|gzip schema.sql.gz
导入:
gunzip <schema.sql.gz |mysql -uroot -p schame(要导入的库的名称)
参数解释:
--single-transaction 参数的作用,设置事务的隔离级别为可重复读
--skip-extended-insert 默认mysqldump会将多条插入语句导出成一条
--set-gtid-purged=OFF 导出的数据要做主从库的基础数据就加上,不做主从就不加。
--default-character-set=utf8 默认支持中文
至于导出全部schema 或者导出多个schema 又或者只导出某张表这些细微区分不明白的可以百度一下mysqldump,以上命令我一直都在用,亲测无误,是俺走过的路。