环境准备;
ip mysql版本 角色
192.168.0.181 Rhel6.5/5.5.32 Master
192.168.0.182 Rhel6.5/5.5.32 slave
192.168.0.181:
yum install -y mysql mysql-server
/usr/bin/mysqladmin -u root password "123456" 配置root密码
mysql -u root -p123456 登录
mysql>create database luis
mysql>use luis
mysql>create tables ss(id int,name varchar(20));
service mysqld stop 关闭mysql 修改配置文件
修改配置文件 vim /etc/my.cnf
在[mysqld]下添加
log-bin=mysql-bin-master 启动二进制日志
server-id = 1 本机数据库id
binlog-do-db=luis 可以被从 服务器复制的库.
binlog-ignore-db=mysql 不可以被从服务器复制的库
mysql service mysqld restart 启动
登录
mysql>grant replication slaveon *.* to slave@192.168.0.182 identified by "123456";授权
mysql>show master status; 查看状态信息
ls /usr/local/mysql/data/ 查看二进制文件
mysql> show binlog events\G
复制数据库
1.mysqldump -usystem -p123456 luis >luis.sql
将数据库传给从服务器
1.scp luis.sql 192.168.0.181:/root
2181: nc -l 888
lsof -i :888
nc 192.168.0.181 888 > luis.sql
补充:
nc除了传输文件,也可以传输字符串
使用nc命令发送字符:
发送端:echo "hello hacker!" | nc -l 5140
接受端:[root@xuegod64 ~]# nc 192.168.1.63 5140
hello hacker!
182:
show variables like '%version%'; 确认两个服务器的版本
测试 mysql -uslave -p123456 -h 192.168.0.181
导入数据库,和主数据库服务器保持一致
mysql> create database luis;
mysql -usystem -p123456 luis
vim /etc/my.cnf
版本5.1的配置
server-id = 2
master-host=192.168.1.63 #指定主服务器IP地址
master-user=slave #指定定在主服务器上可以进行同步的用户名
master-password=123456#密码
#master-port=3306
master-connect-retry=60 #断点重新连接时间
change master to master_host='192.168.1.63',master_user='slave',master_password='123456'
mysql> start slave;
mysql> show slave status\G 查看状态
Slave_IO_Running :一个负责与主机的io通信
Slave_SQL_Running:负责自己的slave mysql进程
再到主服务器上查看状态:
mysql> show processlist \G
测试
mysql> insert into luis values(1,'aaa');
从数据库上查看:
排查:
主从不同步。
show master status;
然后从服务器在 change
排错思路:
1、二进制日志没有开启
2、IPTABLES没有放开端口
3、对应的主机IP地址写错了
SQL线程出错
1、主从服务器数据库结构不统一
出错后,数据少,可以手动解决创建插入,再更新slave状态。
注:如果主上误删除了。那么从上也就误删除了。#因此主上要定期做mysqldump备份