mysql主从配置
在讲主从配置之前先来了解一下主从同步机制
主从同步机制
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。
在使用二进制日志时,主服务器的所有操作都会被记录下来,从服务器默认会执行日志中所有语句。每一个聪慧武器会记录关于二进制日志的信息:文件名和已经处理过的语句,这样意味着不同的从服务器可以分别执行同一个二进制日志的不同部分,并且从服务器可以随时连接或者终端和服务器的链接
主服务器和每一个从服务器都必须配置一个唯一的ID号(在my.cnf或者my.ini文件的 [mysqld] 模块下有一个server-id配置项),除此之外,每一个从服务器还需要通过 change master to语句来配置它要连接的主服务器的ip地址、日志文件名和日志位置(这些信息存储在主服务器的数据库中)
配置主从步骤
1、备份主服务器原有数据到从服务器上
执行命令: mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
说明: * -u:用户名
* -p:密码
* --all-databases:导出所有数据库
* --lock-all-tables:执行操作时锁住所有表,防止操作时有数据修改
* ~/master_db.sql:导出的备份数据(sql文件)位置,可自己指定
2、在从服务器上进行数据还原
执行命令: mysql -uroot -pmysql < master_db.sql
3、配置主服务器:
编辑设置mysqld的配置文件: 打开my.cnf或者my.ini(不同操作系统文件名不一样),设置server-id和log_bin
重启mysql服务
登录主服务器,创建用于从服务器同步数据使用的账号
mysql -uroot -pmysql
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' indentified by 'slave';
FLUSH PRIVILEGES;
4、配置从服务器
编辑设置mysqld的配置文件: 打开my.cnf或者my.ini(不同操作系统文件名不一样),设置server-id(必须和主服务器id不同)
终端执行命令:change master to master_host='xxxxxx', master_user='slave', master_password='slave',master_log_file='xxxx',master_log_pos=xxx;
说明: 主服务器执行命令:show master status
master_log_file,master_log两个属性分别对应file和position值
5、验证是否设置成功
从服务器执行命令:show slave status \G;
若 Slave_IO_Running:Yes
Slave_SQL_Running:Yes都对应yes,则表示同步已经正常运行
