mysql主从复制配置
复制的基本原理
2、复制的基本原则
3、复制的最大问题
4、配置
0、准备
1、修改server_uuid为随机数,注意主从机的uuid不能重复
修改:
1 // 查看地址
2 show variables like 'datadir'
修改这个地址下的auto.cnf文件。
2、主从机的mysql都无数据插入,可以先把在用的数据库密码改一下
配置完重启mysql
1、主机配置
主机修改my.cnf配置文件
# 主从复制配置如下 #主服务器唯一Id[必填] server-id=1 #启用二进制日志[必填] log-bin=自己mysql的路径/mysqlbin #主机,读写都可以 read-only=0 #设置不要复制的数据库[可选] #binlog-ignore-db=mysql #设置需要复制的数据库[可选](输数据库名字) binlog-do-db=test
2、从机配置
#主从复制配置 #从服务器唯一Id server-id=2#启用二进制日志 log-bin=自己mysql的路径/mysqlbin #只读,对拥有super权限的账号是不生效的 read_only = 1
3、建立账户并授权
1、在主机上建立账户并授权slave
创建用户
CREATE USER 'zhangsan'@'%' IDENTIFIED BY '123456';
授权slave
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan' @ '127.0.0.1【从机数据库IP】' IDENTIFIED BY '123456';
注意 从机数据库IP:也可以是%,代表任意主机。
可以通过user表查看对应用户是否具有从库复制的权限
更新权限
flush privileges;
查询master的状态show master status
2、从机上配置需要复制的主机
CHANGE MASTER TO MASTER_HOST='ip地址', MASTER_PORT=3306, MASTER_USER='zhangsan', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=154;
//第一次才需执行此语句(后面可以不用,从库重新启动后或者执行start slave,会从上一次断开的bin-log位置读取)
MASTER_LOG_FILE:bin-log日志文件,MASTER_LOG_POS要从那个位置开始复制.可以在主库里面执行show master status来获得对应的文件名和位置
3、启动从服务器复制功能
start slave;
show slave status\G
【\G是为了以键值的形式显示,好看一些】
下面两个参数都是Yes,则说明主从配置成功!
问题1
Slave_IO_Running: no
执行show slave status 查看Last_IO_error字段值
如上错误(主库和从库的uuid不能一样),可以按以下步骤解决
(1) show variables like 'datadir'
(2 )select uuid();
把步骤(1)地址下auto.cnf文件的uuid改成(2 )查出来的值
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~