关闭

mysql 主master 从 slaver 复制 配置详细

标签: mysql 主从 复制 bin-log
377人阅读 评论(0) 收藏 举报
分类:


主服务器

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位置来恢复





 














0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12025次
    • 积分:278
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:9篇
    • 译文:0篇
    • 评论:1条
    文章分类