mysql主从复制设置

来源:互联网 发布:linux开机动画 编辑:程序博客网 时间:2024/06/08 10:58

前边写过mysql读写分离配置bin-log,以及使用bin-log恢复数据。mysql读写分离应用层面的实现。

这边关于主从数据库服务器配置,达到主库和从库的同步,实现完整的一套读写分离。

参考mysql官网配置:点击打开链接

1.首先配置主数据库服务器,主数据库服务器需要开启bin-log,并且指定server-id,这个server-id必须在主从配置中是唯一的,也就是主和从的server-id不能一样。

2.在主服务器上执行如下代码%代表所有
创建用于主从复制的账号密码
CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
给该账号授权
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';


3.从服务器开启bin-log功能,并且指定server-id,server-id必须是唯一的
在从服务器中执行
mysql>CHANGE MASTER TO
-> MASTER_HOST='master_host_name',--指定主服务器的ip地址
     -> MASTER_USER='replication_user_name', --指定主从复制的账号,也就是在主服务器上创建的账号
     -> MASTER_PASSWORD='replication_password', --指定主从复制的密码,也就是在主服务器上创建的密码
     -> MASTER_LOG_FILE='recorded_log_file_name', --指定主服务器上的bin-log文件名称
     -> MASTER_LOG_POS=recorded_log_position; --指定主服务器上的bin-log的开始位置

配置已经结束,结合应用层面的读写分离就可以实现真正的读库与写库分离,并且达到主库数据库同步到从库中。


如果出现如下错误

Last_IO_Error: Got fatal error 1236 from master when reading dat a from binary log: 'Could not find first log file name in binary log index file'

这就是因为删除数据导致主从不能进行同步

解决方法:

先进入slave中执行:"stop slave;"来停止从库同步;

再去master中执行:"flush logs;"来清空日志;

然后在master中执行:"show master status;"查看下主库的状态,主要是日志的文件和position;

然后回到slave中,执行:"CHANGE MASTER TO MASTER_LOG_FILE='主服务器bin-log文件名称',MASTER_LOG_POS=106;",文件和位置对应master中的;

最后在slave中执行:"start slave;"来启动同步。

如果出现如下错误

Last_IO_Error: error connecting to master 'replication@10.1.0.90 :3306' - retry-time: 60  retries: 13

这是因为从服务器无法连接主服务器,可能的原因是密码不正确导致的

解决方法如下

通过mysql -h 10.24.54.18 -u账号 -p密码 命令来查看从服务器是否能够连接上主服务器

show slave status\G查看从服务器的状态信息,出现如下图所以,说明主从同步配置成功。



0 0
原创粉丝点击