Linux下mysql数据库备份

本文介绍在CentOS 7.3环境下MySQL 5.7.19的启动、连接及关闭方法,并详细阐述了通过mysqldump进行数据库备份的多种方式,包括不同参数设置下的差异及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.操作环境编辑本段

1.数据库版本5.7.19;

2.Linux版本Centos7.3

 

2.MySQL启动、连接、关闭相应操作编辑本段

前提:Linux操作系统中已经安装了MySQL
本机环境:my.cnf文件使用的目录是 /tmp/my.cnf; 数据库存放的目录是/database

 mysql数据库启动

# mysqld --defaults-file='/tmp/my.cnf' --datadir='/database/' --user=mysql &


其中--defaults-file='/tmp/my.cnf' 指定启动数据库的配置文件 --datadir指定数据库目录 --user 指定用户  最后加了个& 是让其  在后台执行。

MySQL连接

mysql连接有两种方式一种是socket模式一种是tcp/ip模式
socket模式:MySQL没有指定参数时默认使用socket模式登陆 
命令:mysql -uroot -p --socket=/database/mysql.sock

tcp/ip模式:MySQL指定参数-h会使用tcp/ip模式登陆

命令: mysql -uroot -p  -h127.0.0.1  --port=3307

关闭MySQL进程

 mysqladmin -uroot -p  --socket=/database/mysql.sock  shutdown

3.备份方式编辑本

dump文件备份

 题外话:Ctrl+R在Linux中是快速搜索到之前敲过的命令

 在配置文件备份之前先查看mysql服务是否正在运行,如果没有正在运行的服务应该启动服务。

rpm -qa | grep mysql

  

备份dump文件有几种备份的方式

 1.常规备份不含有创建数据库的语句

 mysqldump -uroot -p --routines --socket="/database/mysql.sock" vir >vir1.sq常规备份数据内容


 2.带有--databases参数的备份(是创建了个数据库)

 mysqldump -uroot -p --routines --socket="/database/mysql.sock" --databases vir >vir2.sql


3.带有--add-drop-database --databases的备份(试用于测试环境,可以快速将数据库回复到测试之前的数据库)

mysqldump -uroot -p --routines --socket="/database/mysql.sock" --add-drop-database --databases vir >vir3.sql




4.其他参数

5.模拟dump文件备份

   先删掉mysql> drop database vir; 数据库


  然后导入自带创建库的vir3.sql

  [root@localhost database]# mysql -uroot -p --socket=/database/mysql.sock databases   < vir3.sql


binlog备份(增量备份 和dump搭配使用)


配置binlog参数在my.cnf中 : log_bin=/database/binlog  指定binlog的路径  server-id=1 这个id可以任意给

binlog的binlog_format=statement和row 默认是row。binlog日志中记录的是改变的数据像insert和update操作。而statement和row格式出来的binlog区别:statement是人可以看懂的语句。row不是人看的。哈哈。


查看某个binlog:mysqlbinlog binlog.000002

以下拿binlog.000002举例

 


 binlog日志可以选取某个时间段或者起始位置和终止位置来进行数据恢复  详细参数

 mysqlbinlog binlog.000002
 mysqlbinlog --start-position=575 --stop-position=667 binlog.000002
 mysqlbinlog --start-position=575 --stop-position=667 binlog.000002> binlog002.sql
 mysql -uroot -p --socket=/database/mysql.sock test < binlog002.sql

在将处理过的binlog导回相应的数据库mysql -uroot -p --socket=/database/mysql.sock vir< binlog002.sql


binlog重新生成的时机:1. max_binlog_cache_size 达到上限

  2.重启mysql 


my.cnf参数编辑本段

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/database
socket=/database/mysql.sock
secure-file-priv=/database/
user=mysql
port=3307
log_bin=/database/binlog
server-id=1
#binlog_format=statement
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/database/mysqld.log
pid-file=/database/mysqld.pid

##add by yb
innodb_buffer_pool_size=256MB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值