• 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参数大全:







  • 相关阅读:
    Codeforces Round #630 (Div. 2)A~E题解
    2020cug新生赛 An easy problem
    tensorflow.python.framework.errors.NotFoundError: <exception str() failed>错误解决
    将博客搬至CSDN
    2018年北京大学软件工程学科夏令营上机考试
    程序设计题目中的输入输出
    2018北大计算机学科夏令营机试题目
    Pyhton全栈的知识点(5)
    Python全栈的知识点(4)
    Python全栈的知识点(3)
  • 原文地址:https://www.cnblogs.com/edgedance/p/7231860.html
Copyright © 2020-2023  润新知