一、mysql数据库自带备份命令:mysqldump
1、备份:
mysqldump -u用户名 -p'密码' 数据库名 >备份的文件名
如:1、mysqldump -uroot -p'123' zdh >/opt/mysql_bak.sql
2、mysqldump -uroot -p'123' -B zdh >/opt/mysql_bak_B.sql(-B参数,指定多个库,导出数据,推荐)
3、mysqldump -uroot -p'123' --compact -B zdh >/opt/mysql_bak_B_compact.sql(--compact,适用于debug调优,
去掉注释,生产场景不用,不推荐)
4、压缩备份:
mysqldump -uroot -p'123' -B zdh|gzip >/opt/mysql_bak_sql.gz
5、压缩备份多个库:
mysqldump -uroot -p'123' -B zdh oldboy|gzip >/opt/mysql_bak_sql.gz
(备份zdh和oldboy两个mysql数据库)
6、备份多个库:
mysqldump -uroot -p'123' -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^#mysqldump -uroot -p'123' -B #g'
(其中root是用户名,123是mysql登录密码,zdh是mysql的一个数据库名,/opt/mysql_bak.sql
表示备份的位置和文件名,加了-B参数其备份的sql语句多了create database db创库
和use 'db'连接库的过程)
2、恢复:
mysqldump -u用户名 -p'密码' 数据库名 <备份的文件名
如:1、mysqldump -uroot -p'123' zdh </opt/mysql_bak.sql
2、mysqldump -uroot -p'123' </opt/mysql_bak_B.sql(这个仅仅适用于备份时加了-B参数的备份)
3、查看mysqldump下备份的sql语句
egrep -v "#|\*|--|^$" /opt/mysql_bak.sql
4、查看mysql的字符集:
mysql -uroot -p123 -e "show variables like '%character%'"
5、查看sql的内容:
1、备份单表:
mysqldump -u用户名 -p'密码' 数据库名 表名 >备份的文件名
mysqldump -uroot -p'123' zdh student >/opt/one.sql
(zdh是数据库名,student是zdh下的表名)
2、备份多表:
mysqldump -u用户名 -p'密码' 数据库名 表名1 表名2 >备份的文件名
1、只备份mysql表结构:
mysqldump -u用户名 -p'密码' -d 数据库名 >备份的文件名
mysqldump -uroot -p'123' -d zdh >/opt/three.sql
2、只备份mysql数据:
mysqldump -u用户名 -p'密码' -t 数据库名 >备份的文件名
mysqldump -u用户名 -p'密码' -A -B --events|gzip >备份的文件名
1、mysqldump -u用户名 -p'密码' -A -B -F --events|gzip >备份的文件名
mysqldump -uroot -p'123' -A -B -F --events|gzip >/opt/a.sql.gz
1.1、自动找到binlog的文件和位置:
mysqldump -uroot -p'123' --master-data=1 student >/opt/student.sql
会出现CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.007',MASTER_LOG_POS=107;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.007':表示binlog的文件
107:表示当前备份的点
1.2、查看mysqlbinlog的安装位置:
1、-B 指定多个库,增加建库语句和use语句
2、--compact 去掉注释,精简输出,适合debug,生产不用
3、-A 备份全库
4、-F 刷新binlog日志
5、--master-data 增加binlog日志文件名以及对应的位置点(matser-data=1/2,2多了注释,1精简表示可执行用于mysql从库,master-data能知道mysqlbinlog日志和对应的位置点)
6、-x 锁表
7、-l 只读锁表
8、-d 只备份表结构
9、-t 只备份数据
8.1:myisam常规备份
mysqldump -uroot -p'123' -A -B -F --master-data=2 -x --events|gzip >/opt/student.sql
8.2:innodb常规备份
mysqldump -uroot -p'123' -A -B -F --master-data=2 --single-transaction --events|gzip >/opt/student.sql
1、备份:
mysqldump -u用户名 -p'密码' 数据库名 >备份的文件名
如:1、mysqldump -uroot -p'123' zdh >/opt/mysql_bak.sql
2、mysqldump -uroot -p'123' -B zdh >/opt/mysql_bak_B.sql(-B参数,指定多个库,导出数据,推荐)
3、mysqldump -uroot -p'123' --compact -B zdh >/opt/mysql_bak_B_compact.sql(--compact,适用于debug调优,
去掉注释,生产场景不用,不推荐)
4、压缩备份:
mysqldump -uroot -p'123' -B zdh|gzip >/opt/mysql_bak_sql.gz
5、压缩备份多个库:
mysqldump -uroot -p'123' -B zdh oldboy|gzip >/opt/mysql_bak_sql.gz
(备份zdh和oldboy两个mysql数据库)
6、备份多个库:
mysqldump -uroot -p'123' -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^#mysqldump -uroot -p'123' -B #g'
(其中root是用户名,123是mysql登录密码,zdh是mysql的一个数据库名,/opt/mysql_bak.sql
表示备份的位置和文件名,加了-B参数其备份的sql语句多了create database db创库
和use 'db'连接库的过程)
2、恢复:
mysqldump -u用户名 -p'密码' 数据库名 <备份的文件名
如:1、mysqldump -uroot -p'123' zdh </opt/mysql_bak.sql
2、mysqldump -uroot -p'123' </opt/mysql_bak_B.sql(这个仅仅适用于备份时加了-B参数的备份)
3、查看mysqldump下备份的sql语句
egrep -v "#|\*|--|^$" /opt/mysql_bak.sql
4、查看mysql的字符集:
mysql -uroot -p123 -e "show variables like '%character%'"
5、查看sql的内容:
less /opt/mysql_bak_B_compact.sql
备份:以逻辑的sql语句形式直接备份文件;
1、备份单表:
mysqldump -u用户名 -p'密码' 数据库名 表名 >备份的文件名
mysqldump -uroot -p'123' zdh student >/opt/one.sql
(zdh是数据库名,student是zdh下的表名)
2、备份多表:
mysqldump -u用户名 -p'密码' 数据库名 表名1 表名2 >备份的文件名
mysqldump -uroot -p'123' zdh student temp >/opt/two.sql
1、只备份mysql表结构:
mysqldump -u用户名 -p'密码' -d 数据库名 >备份的文件名
mysqldump -uroot -p'123' -d zdh >/opt/three.sql
2、只备份mysql数据:
mysqldump -u用户名 -p'密码' -t 数据库名 >备份的文件名
mysqldump -uroot -p'123' -t zdh >/opt/three.sql
mysqldump -u用户名 -p'密码' -A -B --events|gzip >备份的文件名
mysqldump -uroot -p'123' -A -B --events|gzip >/opt/a.sql.gz
1、mysqldump -u用户名 -p'密码' -A -B -F --events|gzip >备份的文件名
mysqldump -uroot -p'123' -A -B -F --events|gzip >/opt/a.sql.gz
1.1、自动找到binlog的文件和位置:
mysqldump -uroot -p'123' --master-data=1 student >/opt/student.sql
会出现CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.007',MASTER_LOG_POS=107;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.007':表示binlog的文件
107:表示当前备份的点
1.2、查看mysqlbinlog的安装位置:
which binlog
1、-B 指定多个库,增加建库语句和use语句
2、--compact 去掉注释,精简输出,适合debug,生产不用
3、-A 备份全库
4、-F 刷新binlog日志
5、--master-data 增加binlog日志文件名以及对应的位置点(matser-data=1/2,2多了注释,1精简表示可执行用于mysql从库,master-data能知道mysqlbinlog日志和对应的位置点)
6、-x 锁表
7、-l 只读锁表
8、-d 只备份表结构
9、-t 只备份数据
10、--single-transaction 适合innodb事务库备份(设置会话的隔离级别为:REPEATABLE READ)
8.1:myisam常规备份
mysqldump -uroot -p'123' -A -B -F --master-data=2 -x --events|gzip >/opt/student.sql
8.2:innodb常规备份
mysqldump -uroot -p'123' -A -B -F --master-data=2 --single-transaction --events|gzip >/opt/student.sql