AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
**mysql数据备份** >[success] mysql数据库自带一个很好用的备份命令 就是mysqldump 语法: ~~~ mysqldump -u 用户名 -p 密码 数据库名 > 备份文件路径/备份文件名 ~~~ 1. 查看备份前的数据 ~~~ [root@greymouster]# mysql -uroot -proot -e "use test;show tables;select * from student;" ~~~ 2. 执行备份的命令 ~~~ [root@greymouster]# mysqldump -uroot -proot test > /opt/test_bak.sql ~~~ 3. 检查备份的结果 ~~~ [root@greymouster]# egrep -v "#|\*|--|^$" /opt/test_bak.sql ~~~ 4. 设置字符参数备份解决乱码问题 * 查看备份前数据库客户端及服务端的字符集设置 ~~~ [root@greymouster]# mysql -uroot -proot -e "show variables like '%character%'" ~~~ * 指定对应的字符集备份,这里为--default-character-set=latinl ~~~ [root@greymouster]# mysqldump -uroot -proot --default-character-set=latinl test >/opt/test_bak.sql [root@greymouster]# egrep -v "#|\*|--|^$" /opt/test_bak.sql ~~~ 5. 备份时加 -B参数 >[success] -B参数的作用是增加创建数据库和连接数据库的命令了 > CREATE DATABASE IF NOT EXISTS; > USE \`test\`; ~~~ [root@greymouster]# mysqldump -uroot -proot --default-character-set=latinl -B test >/opt/test_bak.sql ~~~ 6. 备份时加 --compact参数 >[success] --compact参数可以优化输出内容的大小,让内容更少,适用于调试 ~~~ [root@greymouster]# mysqldump -uroot -proot --compact -B test >/opt/test_bak.sql ~~~ 7. 指定压缩命令压缩备份的mysql数据 ~~~ [root@greymouster]# mysqldump -uroot -proot -B test|gzip >/opt/test_bak.sql.gz ~~~ 8. 备份多个mysql库 >[success] 在-B参数后要备份的数据库 -B 库名(test) 库名(test1) ~~~ [root@greymouster]# mysqldump -uroot -proot -B test test1|gzip >/opt/tests.sql.gz ~~~ 9. 分库备份(同时备份所有数据库) ~~~ [root@greymouster]# myql -uroot -proot -e "show database;"|grep -Evi "database|infor|perfor"|sed "s#^#mysqldump -uroot -proot -B#g" [root@greymouster]# myql -uroot -proot -e "show database;"|grep -Evi "database|infor|perfor"|sed -r "s#^([a-z].*$)#mysqldump -uroot -proot --events -B \1" >/opt/\1.sql.gz#g"|bash ~~~ 10. bash脚本 ~~~ for dbname in `mysql -uroot -p'root' -e "show databses;"|grep -Evi "database|infor|perfor"` do mysqldump -uroot -p'root' --events -B $dbname|gzip >/opt/bak/${dbname}_bak.sql.gz done ~~~ 11. 备份单个表 >[success] 语法: > mysqldump -u用户名 -p密码 数据库名 表名 > 备份的文件名 ~~~ [root@greymouster]#msqldump -uroot -proot test student>/opt/bak/student.sql ~~~ 12. 备份多个表 >[success]语法: > mysqldump -u 用户名 -p密码 数据库名 表名1 表名2>备份文件名 ~~~ [root@greymouster]#msqldump -uroot -proot test student user >/opt/bak/test.sql ~~~ 13. 备份mysql的表结构 加-d参数 ~~~ [root@greymouster]#msqldump -uroot -proot -d test >/opt/bak/test_bak.sql ~~~ 14. 只备份mysql的数据表数据 加 -t参数 ~~~ [root@greymouster]#msqldump -uroot -proot -t test student>/opt/bak/test_student_bak.sql ~~~ 15. 备份数据库中的所有表 包含mysql表 -A参数 ~~~ [root@greymouster]#msqldump -uroot -proot -A - B --events test>/opt/bak/test_bak.sql ~~~ 16. 备份数据刷新binlog参数 加 -F参数 >[success] 开启log_bin vi /etc/my.cnf > log_bin = mysql-bin > /ect/init.d/mysqld restart ~~~ [root@greymouster]#msqldump -uroot -proot -A - B -F --events test>/opt/bak/test_bak.sql [root@greymouster]# ll /application/mysql/data/ ~~~ 17. 备份数据 自动添加 binlog日志文件及对应的位置点 加--master-data=1 >[success] 当master-data=2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。 ~~~ [root@greymouster]#msqldump -uroot -proot -A - B --master-data=1 test>/opt/bak/test_bak.sql ~~~ 18. 备份数据 适用innodb事务数据库的备份 --single-transaction >[danger] InnoDB表在备份时,通常启用项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为 REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交的数据。 ~~~ [root@greymouster]#msqldump -uroot -proot --single-transaction test>/opt/bak/test_bak.sql ~~~ 19.备份数据 根据查询条件备份数据 --where=" " >[success] mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径 ~~~ mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql 另外你还可以直接导出 文本文件*.txt mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.txt ~~~ --------------------- 作者:齐鲁至滇 来源:CSDN 原文:https://blog.csdn.net/xin_yu_xin/article/details/7574662?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接! **工作中常用的备份** >[success] --lock-all-tables, -x 提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。 1. MYISAM备份命令: ~~~ [root@greymouster]#mysqldump -uroot -proot -A -B -F --master-data=2 -x|gzip test> /opt/all.sql.gz ~~~ 2. INNODB备份命令: ~~~ [root@greymouster]#mysqldump -uroot -proot -A -B -F --master-data=2 --single-transaction|gzip test> /opt/all.sql.gz ~~~ **DBA备份命令** 1. for MyISAM ~~~ [root@greymouster]# mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob>/opt/full_dump_bak.sql ~~~ 2. for InnoDB ~~~ [root@greymouster]# mysqldump --user=root --all-databases --flush-privileges --single-transaction --master-data=1 --flush-logs --triggers --routines --events --hex-blob>/opt/full_dump_bak.sql ~~~ **mysql数据库恢复** 1. 利用source命令恢复数据库 进入mysql数据库控制台,mysql -uroot -proot登陆后 ~~~ mysql>use 数据库; ~~~ 用system ls 查看系统的路径 ~~~ mysql> system ls /opt ~~~ 然后使用source命令,后面参数为脚本文件(这里用到的.sql) ~~~ mysql>source /opt/test_bak.sql #这个文件是系统路径,默认是登陆mysql前的系统路径 ~~~ 2. 利用mysql命令恢复(标准) >[success] 压缩的文件要先解压 > gzip -d /opt/mysql_bak.sql.gz ~~~ [root@greymouster]#mysql -uroot -p'root' test</opt/test_bak.sql ~~~ 3. 数据批量恢复 ~~~ [root@greymouster]#for dbname in `ls *.sql|sed 's#_bak.sql##g'`;do mysql -uroot -proot <{$dbname}_bak.sql;done ~~~