mysql主从复制
-------------------------------------------------------------
环境:
两台服务器(一台服务器两个实例)
主库:(ip 192.168.1.1 port:3306)
从库:(ip 192.168.1.2 port:3306)
授权账号:
user:max
password:123.com
开始思路:
打开主库binlog日志文件
创建于主库复制的用户授权(主)
主库进行备份,找到备份点
将从主库备份的数据还原到从库
配置同步参数(从)
开启从库同步(从)
开启binlog ,设置同步参数(注释掉skip-external-locking 和 bind-address)
==主库==
# vim /etc/my.cnf
[mysqld]
server-id = 1 #主机标示,整数不能跟从服务器相同
log_bin= mysql-bin #确保此文件可写
1.查看配置结果
# egrep “log-bin|service-id”/etc/my.cnf
2.看是否生效(1).看 是否有日志(有mysql-bin和mysql-bin.index)
(2).去mysql里看
> show variableslike ‘log-bin’
==从库==
# vim /etc/my.cnf
[mysqld]
server-id = 2 #不要跟主的一样
二、创建用于同步用户账号(主)
> grant replication slave on *.* to ‘max‘@‘192.168.1.0‘identified by ‘123.com‘;
> flush privileges
三、主库进行备份,找到位置点
1.主库加锁只可读,查看位置点
>flush table with read lock
> show master status
2.备份并将备份点放入到备份文件中
> mysqldump –u root –p –A –B –events –master-date=2|gzip > /home/hui/backup/bak.sql.gz
3.导完后,解锁表,恢复可写
>unlock tables
四、将从主库备份的数据还原到从库
1.将主库备份的文件,传到从库
2.还原
> mysql –uroot –p < /home/hui/backup/bak.sql.gz
五、从库配置同步参数(会放到master info里)
1.配置参数
# Changmaster to
master_host = ‘192.168.1.2’,
master_port = ‘3306’,
master_user= ‘max’,
master_password= ‘123.com’,
master_log_file=’mysql-bin.000003(位置点)’,
master_log_pos=3323
2.查看所写入内容
cat /etc/master.info
六、开启从库同步(从)
> start slave
七、验证
> show slave status\G
IO和SQL线程是否都开了
Slave_IO_Running:YES
Slave_SQL_Running:YES
落后主库的描述是0
Seconds_Bchind_Master:0
1.relay_log 记录到哪
# cat relay-bin.index
2.在主库创建一个库,看从库是否同步 ,同步则成功!
原文地址:http://dahui09.blog.51cto.com/10693267/1722950