主数据库开启binlog
修改my.ini或my.cnf文件,开启binlog日志文件,修改如下:
log-bin=mysql-bin-log
binlog-do-db=db_name – 数据库变更记录到binlog
binlog-ignore-db=db_name – 数据库变更不记录到binlog
在mysql的datadir设置的路径下可以看到mysql-bin-log.xxxxxx文件,这个文件就是binlog文件,里面存储的是数据库的变更,通过show binlog events in ‘mysql-bin-log.xxxxxx’命令可以查看数据库变更详情。配置主从服务器server-id
依次修改主从数据库的my.ini或my.cnf文件,修改如下
主数据库:
server-id=222 – 主数据库取其所在的主机ip的末端
从数据库
server-id=226 – 从数据库取其所在的主机ip的末端开启从数据库的中继日志
修改从数据库的my.ini或my.cnf文件,修改如下
relay-log=slave-relay-log
在从数据库的datadir路径下可以看到slave-relay-log.xxxxxx文件授权slave连接master的用户名和密码
在主数据库下执行如下命令:
GRANT REPLICATION SLAVE ON . to ‘slave’@’%’ identified by ‘123456’;
slave是用户名,123456是密码,@后面跟允许同步数据库的主机,%代表不限制(196.168.1.%亦可),只要用户名和密码匹配即可。配置从数据库的master信息:
change master to master_host=’127.0.0.1’,
master_port=3306,
master_user=’slave’,
master_password=’123456’,
master_log_file=’mysql-bin-log.000004’, – 从master的哪个binlog文件开始复制
master_log_pos=0; – 从哪个pos点开始复制
其中master-log-file 以及 master-log-pos 一般是在master上次的数据库拷贝到从库的时刻在主库上执行show master status得到此刻的master-log-file和master-log-pos;启动主库和从库
在从数据库上执行stop slave start slave来启动或者关闭数据备份任务,(从库上修改master信息时需要stop slave ,修改后在start slave)
从库当前状态,包括同步的主库ip,用户名,密码,同步任务线程的状态
show slave status
slave-io-state 为空通常是stop slave导致的,执行start slave可以看到状态变为Waiting for master to send event。
slave-io-running和slave-sql-running均为YES代表从库同步任务正常,其中任何一个异常都是无法正常同步的,可以在从库的datadir指定的路径下查看${host}.err文件,查看错误原因。
mysql主从配置
最新推荐文章于 2024-11-15 21:53:57 发布