MySQL 备份与还原 及主从复制

作为数据库,为了数据安全,mysql当然提供了数据备份和数据还原的功能,而且还提供了主从复制的功能,也就是说能搭建数据库集群,以下记录下常用的操作步骤流程;

一. MYSQL的备份

备份相当简单,使用mysqldump工具就可以实现:

  1. //将指定的数据库备份
    mysqldump -uroot -h host -p123456 库名 > test.sql
    //将指定的数据表备份
    mysqldump -uroot -h host -p123456 库名 表名> test.sql
    //将多个数据库
    mysqldump -uroot -h host -p123456 -datebases 库名1 库名2> test.sql
    //备份时锁定数据库并且自动flush binlog
    mysqldump -uroot -h host -p123456 库名 -l -F> test.sql

当然,除了将数据还原为mysql脚本外,还可以直接备份MySQL存储在磁盘上的文件,但是通过这种方式转移数据时,可能会遇到因为MYSQL版本不同或存储殷勤不同,导致出现还原失败的现象,所以这种方式备份不推荐;

二. MYSQL的SQL文件还原

得到sql脚本后,就可以用于数据的恢复还原了:

//登录mysql-client后,使用source指令:
mysql> source sql文件路径
//或者使用mysql工具:
#mysql -uroot -p123456 库名 -v -f < sql文件路径 //v是显示信息 f遇到错误继续

三. MYSQL的BINLOG(二进制日志)数据恢复

使用上述的方式进行数据备份还原可以进行阶段性的数据恢复,但是如果遇到突发情况(如不小心删除表数据),在上一次备份和当前时间点的数据就会丢失。

因此解决的方法也很简单,就是将mysql数据修改操作(增删改)的每个步骤用日志记录下来,以便以后有迹可循;

mysql常用的日志方式:二进制日志(binlog)

1.开启binlog,在my.ini中,这样设置:
    // log file storage path
    log-bin [=path/[filename]] 
    // period of binlog(before the period the log will be deleted),disabled if 0
    expire_logs_days = 10  
    // the max size of every file of binlog, cant set 4096K<x<1G(default)
    max_binlog_size = 100M 

2.重启MySQL使得配置生效,生效后每次进行增删查改就会写入binlog
3.查看binlog的内容
#mysqlbinlog --no-defaults --start-position=“597” --stop-positon=“746” --start-date=“2012-01-04 10:00:25” --stop-date=“2012-01-04 19:00:25” log文件 | more
4.运行指定binlog以还原数据
mysqlbinlog --no-defaults --stop-position=“1017” mysql_bin.000001 | mysql -uroot -p 数据库名字

四.主从机复制

MySQL提供了主从机机制,允许主机进行读写操作,而从机负责读操作,这样子就能同时加强了数据的安全性以及访问的均衡性。

1.主机设置server-id
my.cnf 中[mysqld]写上:
server-id=1 //注意server-id是mysql集群中的唯一id
2.主机创建从机访问账户
GRANT REPLICATION SLAVE ON . to ‘slave_mac’@’%’ identified by ‘123456’
3.主机导出mysql脚本(见“一. MYSQL的备份”)
注意:导出时对mysql进行锁操作,然后再进行导出,同时查看bin-log的文件和position
4.从机导入主机的mysql脚本(见“二. MYSQL的SQL文件还原”)
5.从机设置server-id
server-id=2 //注意server-id是mysql集群中的唯一id
6.从机设置主机信息

#mysql
mysql>change master to  
master_host='192.168.145.222',  //主句地址
master_user='slave_mac',
master_password='123456',
master_log_file='mysql-bin.000004', //主机当前bin-log的文件
master_log_pos=308; //主机当前bin-log的文件position

5.从机开启slave模式
mysql>start slave;
6.从机查看slave状态
mysql>show slave status;
好了,已经开启了mysql的主从模式,当操作mysql的主数据库数据时,从数据库的数据也会跟着变化。
在实际应用中,从数据只允许读访问,这起到了备份数据的同时减轻了主服务器的读数据压力,也就起到了均衡访问和集群冗余的作用了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供MySQL安装及主从复制搭建的全过程。请注意,这是一个较为复杂的过程,需要您有一些基本的系统管理和MySQL操作的知识。 1. 安装MySQL 首先,您需要选择合适的MySQL版本进行安装,并确保您拥有管理员权限。以下是在Ubuntu系统上安装MySQL的步骤: ``` sudo apt-get update sudo apt-get install mysql-server ``` 安装完成后,您可以通过以下命令来检查MySQL是否已经成功安装: ``` systemctl status mysql.service ``` 2. 配置主库 接下来,您需要在MySQL中创建一个主库,并进行必要的配置。以下是一些基本的配置步骤: - 创建一个用于主库的用户账户,并授予其必要的权限: ``` CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'myuser'@'%'; ``` - 在MySQL配置文件中启用二进制日志(binlog): ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在文件中添加以下行: ``` log-bin = mysql-bin server-id = 1 ``` 保存并关闭文件,然后重新启动MySQL服务: ``` sudo systemctl restart mysql.service ``` 3. 配置从库 接下来,您需要在另一台MySQL服务器上配置从库。以下是一些基本的配置步骤: - 创建一个用于从库的用户账户,并授予其必要的权限: ``` CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'myuser'@'%'; ``` - 在MySQL配置文件中配置从库: ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在文件中添加以下行: ``` server-id = 2 ``` 保存并关闭文件,然后重新启动MySQL服务: ``` sudo systemctl restart mysql.service ``` 4. 启动主从复制 现在,您可以开始配置主从复制。以下是一些基本的配置步骤: - 在主库中创建一个用于从库的备份: ``` mysqldump -u root -p --all-databases --master-data > backup.sql ``` 此命令将创建一个名为backup.sql的备份文件,并将主库的binlog位置信息写入文件中。 - 将备份文件复制到从库中,并在从库上还原数据库: ``` mysql -u root -p < backup.sql ``` - 在从库中配置主从复制: ``` CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position; ``` 其中,`MASTER_HOST`是主库的IP地址,`MASTER_USER`和`MASTER_PASSWORD`是用于从主库复制数据的用户和密码,`MASTER_LOG_FILE`和`MASTER_LOG_POS`是在备份文件中记录的binlog位置信息。 - 启动从库的复制进程: ``` START SLAVE; ``` 5. 测试主从复制 现在,您可以测试主从复制是否正常工作。在主库中创建一些新数据,并在从库中检查是否已经同步。如果一切正常,您应该能够在从库中看到与主库相同的数据。 以上就是MySQL安装及主从复制搭建的全过程,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值