/****
*
*
*修改每台MYSQL服务器的配置文件 my.cnf(windows下是my.ini)
* 1.首先开启每台服务器的Bin日志(必须的)
* 指令:log-bin=mysql-bin
* 2.给每一个服务器以个Id,多台服务器的Id不能重复,要求是唯一的 只要不相同就行
* 指令: server-id = 1
*3. 下面指令是只有在环形结构时候才需要加下面项,主从的时候不需要加
*指令:log-slave-updates = true
* 这里图列解释一下,方便同志们理解
4.关于账号的建立
* 4.1如果主从是(主从)的话那么要在主服务器创建一个账号 SLAVE
* 4.2如果是(环形)的话,那么在每台服务器上都创建一个账号 SLAVE
* 这个账号就专门用来做复制用的
4.3 创建语法:
* 语法:GRANT REPLICATION SLAVE ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
username : 是账号名
password : 是密码
* GRANT REPLICATION SLAVE 意思是分配一个复制的权限 给 SLAVE
ON *.*的意思是 第一个*可为哪个一个数据库(可根据实际情况填写), 第二个*这个数据库的那张表(可根据实际情况填写)
如果直接 ON *.*那表示为,所有的数据库的所有表,说白通配符嘛 ,表示我可以复制所有的数据库的所有表
TO 意思是 username用户名(根据实际情况填写)
%可以这样填写, ;表示限定到具体的 比如只有192.x.x.xxIP地址才能对复制操作
用来限制那台服务器能进行复制
%就表示所有人能复制
IDENTIFIED BY 'password';密码s
5.在服务器上的信息(查看主的) (环形都弄)
FLUSH TABLES WITH READ LOCK; // 意思是,我在复制的时候进行锁表,
保证当前只有我自己一个操作,上线项目建议用上
show master status; //查看状态
--------------------------------------------------------
File Psition binlog_do_Db Bnlog_IGNOre_db
mysq-bin.0000.1 251
--------------------------------------------------------
记录下期中的File 和 Psition
6. 主从:从服务器上设置主服务器的IP地址等信息
环形:说白了,环形链表嘛 一个接着一个,这个没必要详细了嘛,如果还不明白就看我上面的图
CHANGE MASTER TO
MASTER_HOST='xx.xx.xx.xx' # 主服务器ip /环形的就是你上一个的
MASTER_USER='账名', # 主服务器上slave账户名 / 环形的就是你上一个的
MASTER_PASSWORD='密码', # 主服务器上slave 密码/ 环形的就是你上一个的
MASTER_LOG_FILE='mysql-bin.000001', # 主服务器上记录的file / 环形的就是你上一个的
MASTER_LOG_POS=251; # 主服务器上记录的Position /环形的就是你上一个的
7. 启动slave
start slave
8.主从同步检查 /环形同理
mysql> show slave status\G
Slave_IO_Running :yes
Slave_SQL_Running:yes
哥们恭喜你成功了
9.自动删除binlog
设置自动清理MySQL binlog日志,
expire_logs_days = 10