为了数据安全,一般都会将数据库中的数据进行备份。MySQL自带的主从备份,使用起来非常方便,而且功能强大,能够提供近似同步的性能。
配置主从备份时,只需要让slave知道master的地址和端口,以及一个有备份REPLICATION SLAVE权限的账号就行了,而master则不需要知道slave相关的信息。
Master: 192.168.1.123:3306
首先配置master,如果是linux,那么mysql的配置文件一般是 /etc/mysql/my.cnf,如果是windows,就是安装目录下的 my.ini
在配置文件中添加如下代码(某些情况下配置文件中可能存在这些内容,只需要 去掉注释就可以了):
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog_do_db = xxxxx #需要备份的数据库
slave中的配置如下:
server-id = 2 #只要比1大就可以了,1代表master
master-host = 192.168.1.123
master-port = 3306
master-user = iuser
master-password = useri
master-connect-retry = 60 #如果连接失败,则60秒试一次
replicate-do-db = xxxx #需要备份的数据库, 结构必须和master中的一样
注意:
需要在master中,grant REPLICATION SLAVE 权限给 iuser
master> grant REPLICATION SLAVE on *.* to iuser@'%' identified by 'useri';
iuser 替换为相应的用户名,useri则是对应的密码
配置完成后,首先重启master,然后重启slave,并在slave中执行
slave> start slave;
在master中,可以通过 show master status 查看状态,slave中则通过 show slave status查看状态
测试:
在master的表中插入一条后,很快就可以在slave对应的表中看到相同的数据,如果没有同步,则可以查看error log找具体原因,
windows中的error log在安装目录的data目录中, 一般是 *.err 文件;
linux中的error log一般则在 /var/log/mysql/error.log