zoukankan      html  css  js  c++  java
  • mysql备份相关

    1linux下mysql导出文件 备份mysql数据库的命令
    mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql
    例如:mysqldump  -uroot -p1234 springboot   >/tmp/springboot.sql

    仅仅备份数据库结构(不带表数据)
    mysqldump --no-data -h主机名 -u用户名 -p密码  数据库名字 > 备份数据库名字.sql

    直接将mysql数据库压缩备份
    mysqldump -h主机名 -u用户名 -p密码 数据库名字  | gzip >备份的数据库名字.sql.gz

    只备份某些表
    mysqldump -h主机名 -u用户名 -p密码 数据库名字 数据库表名1 数据库其他表名2 > 备份数据库名字.sql

    同时备份多个mysql数据库
    mysqldump -h主机名 -u用户名 -p密码 --databases 需要备份的数据库名字1 需要备份的数据库名字2  > 备份数据库名字.sql

    备份服务器上所有数据库
    mysqldump --all-databases -h主机名 -u用户名 -p密码 > 备份数据库名字.sql

    跨主机备份
    mysqldump备份 -u账号 -p密码 需要恢复的数据库名字 | mysql还原 -u账号 -p密码 --host=192.168.199.100 -C 需要恢复的数据库名字
    mysqldump -uroot -p1234 springboot |mysql -uroot -proot --host=192.168.196.133 -C springboot  #将当前环境的springboot库备份到133机器上

    mysqldump全量备份+mysqlbinlog二进制日志增量备份
    从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,所以还需要结合mysqlbinlog二进制日志增量备份。确保my.ini或者my.cnf中包含下面的配置以启用二进制日志,或者mysqld ---log-bin
    [mysqld]
    log-bin=mysql-bin

     mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件:

    mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql

    --single-transaction  :表示支持事务,但是只针对Inodb
    --flush-logs:刷新日志
    -- master-data

        mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这 个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1
    当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。

      这样生成的增量二进制日志文件比如为mysql-bin.000003,那么恢复数据时如下:

    shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql
    shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

    2linux下msyql还原文件

    数据库还原方式1
     mysql -h主机名 -u用户名 -p密码 需要恢复的数据库名字  < 已备份的数据库名字(见上).sql 

    例子:mysql -uroot -proot springboot < springboot.sql

    注意:需要回复的数据库名字,必须保证在需要恢复的数据库主机上面有个空库或者库名。

    优化方式:(由于导出的sql文件,含数据库创建语句)

     mysql -h主机名 -u用户名 -p密码 < 已备份的数据库名字(见上).sql 


    数据库还原方式2
    mysql -uroot -proot
    mysql>source /tmp/springboot.sql
    注意:生成的sql文件中有,建库语句,所以可以直接导入

    还原压缩的mysql数据库
    gunzip < 刚开始备份集中的数据库名字.sql.gz | mysql -u用户名字 -p用户密码 需要恢复的数据库名字


    3其他

    mysqldump导出时报2002 套接字错误

    在执行mysqldump命令时候报如下错误:
    [root@localhost ~]#  mysqldump -uroot -p -d test> test.sql   
    mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

    找到正确的套接字的路径: 
    [root@localhost ~]#  netstat -ln | grep mysql                                   
    unix  2      [ ACC ]     STREAM     LISTENING     70442911 /MysqlData/base/mysql/mysql.sock

    再运行dump命令:
    [root@localhost ~]# mysqldump --sock=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql   
    Warning: Using unique option prefix sock instead of socket is deprecated and will be removed in a future release. Please use the full name instead.

    Enter password: 

    执行成功,但有警告信息,提示使用sock前辍将在后继版本中可能不再支持,请使用全名

    将--sock 换成--socket将不再有问题:

    [root@localhost ~]# mysqldump --socket=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql   


    4参考:mysqldump参数大全:







  • 相关阅读:
    2018 ACM 网络选拔赛 徐州赛区
    2018 ACM 网络选拔赛 焦作赛区
    2018 ACM 网络选拔赛 沈阳赛区
    poj 2289 网络流 and 二分查找
    poj 2446 二分图最大匹配
    poj 1469 二分图最大匹配
    poj 3249 拓扑排序 and 动态规划
    poj 3687 拓扑排序
    poj 2585 拓扑排序
    poj 1094 拓扑排序
  • 原文地址:https://www.cnblogs.com/edgedance/p/7231860.html
Copyright © 2011-2022 走看看