主服务器
1.登录
master mysql>mysql -u用户名 -p密码
2.授权
1)master mysql>grant all on *.* to user@192.168.10.2 identified by "pass";
or
2).master mysql>grant replication slave on *.* to user@192.168.10.2 identified by "pass";
查看用户授权列表
master mysql>select user,host,password from mysql.user;
3.配置bin-log 日志
master mysql
>vim /etc/my.cnf
log-bin=mysql-bin (添加)
server-id = 1 (唯一)
mysql>show variables like "%bin%" (查看log_bin 是否开启 | log_bin | ON )
4 设置读锁(选作 方便数据备份,推荐使用mysqldump -l -F 选项 可以跳过这一步)
mysql>flush tables with read lock;
数据备份 mysqldump 命令
master mysql
mysql>mysqldump -uroot -p test '/tmp/dump.sql' 或者 tar -cvf data.tar mysql/data
mysql>unlock tables;(读锁完,必须解锁 否则不能再写入)
5.把主数据库一致性备份恢复到从数据库,如过是压缩包直接解压放到从数据库data下
mysql -uroot -p test < /tmp/dump.sql
从服务器
1 vi /etc/my.cnf
log-bin=mysql-bin
server-id = 2 (唯一)
master-host=192.168.213.137(主数据库ip)
master-user=slaver(授权的用户名)
master-password=root123(授权用户密码)
master-port=3306
(有的机器以上配置能出问题 屏蔽掉上面的配置 使用以下 为什么会这样我现在还没搞明白)
mysql> change master to
master_host='192.168.213.137',
master_user='slave',
master_password='root123',
master_port=3306,
master_log_file='mysql-bin.000001';
mysql> start slave;
2 最后查看
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
看到这样则配置成功
否则 查看 这条命令的error 提示
可能是与服务器的id一直 我的是修改auto.cnf 成不同的的值(这里我在本机做的测试 所以centos 都是clone出来的 所以会有相同的配置)
1,
与bin-log相关的日志操作
mysql>\s (查看数据库字符集等信息)
根据bin-log 数据恢复
# /usr/local/mysql/bin/mysqlbinlog /db/mysql/data/mysql-bin.000003 | mysql -uroot -p test
根据备份dump sql 数据恢复
mysql -uroot -p test < /tmp/dump.sql
还可以根据pos位置来恢复