1、mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。mysql 数据库提供了一种主从备份的机制,就是把主数据库的所有的数据同时写到备份数据库中。实现 mysql 数据库的热备份。
2、要实现热备 mysql 的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。
3、设置主数据库服务器:
首先查看主服务器的版本是否是支持热备的版本。然后查看 my.cnf(类 unix)或者 my.ini(windows)中 mysqld 配置块的配置有没有 log-bin (记录数据库更改日志),因为 mysql 的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。
我的配置:
A:
[root@s1 b]# vi /etc/my.cnf
[mysqld]
datadir=/mysqldb/mysql
socket=/mysqldb/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
log-bin=mysql-bin
server-id=1
#sql-bin-update-same
#log-bin=/mysqldb/mysql.log
binlog-do-db=backup_db
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
#password???????????? = your_password
socket=/mysqldb/mysql/mysql.sock
B:
[root@s2 mysql]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
server-id=2
master-host=1.1.1.1
master-user=root
master-password=root
master-port=3306
master-connect-retry=60
replicate-do-db=backup_db
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启mysqld服务,通过在两台数据库中安装phpmyadmin测试,在s1和s2中创建backup_db测试数据库,然后在其中新建表test,查看s2中backup_db数据库会发现自动创建表test,说明主从数据库配置成功!
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/424.html