mysql主从复制(版本不一致)
mysql主从复制要求版本最好一致,至少前两个版本号相同,因为官方推荐这样,最主要还是怕版本不一致带来的不兼容问题;最近刚好在学习mysql主从复制,我已经有了两台服务器,但是mysql版本并不一致,但是既然版本不一致有可能导致不兼容,那么我就让低版本作为主master,高版本作为从slave。一台服务器为centos7,ip地址为192.168.84.23,安装的mysql版本为5.5.56;另一台服务器为win7(即本机),ip地址为192.168.84.15,安装的mysql版本为5.6.26.
1.修改主服务器上的mysql配置文件my.cnf, #vi /etc/my.cnf
(1)主要设置这三个参数:
# replication master server (default)
# binary logging is required for replication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id =23(这里23即ip地址最后位,一般这样设置,只要独一无二即可)
这里有一个问题就是有的人进入my.cnf文件找不到“# replication master server (default) # binary logging is required for replication”这样的描述,原因是你当时安装mysql的时候,在mysql文件下的support-files文件夹下拷贝配置文件到/etc/my.cnf时,你也许选择了拷贝mysql-small.cnf这个文件,当然文件夹下还有mysql-medium.cnf、mysql-large.cnf、mysql-huge.cnf等等;如果你找不到那样的描述符,就换一个把mysql-medium.cnf拷贝到/etc/下,并重命名为my.cnf,就可以看到那些描述了
设置完那三项参数后,保存退出,重启mysql服务。
(2)接下来从服务器也要设置那些参数,这里也有一个问题,由于从服务器是win7,我用的mysql是解压版,根目录下有一个配置文件my-default.ini,我们必须重新复制一份,并重命名为my.ini,如果不新建一份用原来默认的话,操作时就会报下面的错:
error 1794 (hy000): slave is not configuredor failed to initialize properly. you must at least set --server-id to enableeither a master or a slave. additional error messages can be found in the mysqlerror log.
新建好后,就可以修改下面参数:
# remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin=mysql-bin
binlog_format=mixed
# these are commonly set, remove the # and set as required.
basedir = d:\mysql\mysql-5.6.26-winx64
datadir = d:\mysql\mysql-5.6.26-winx64\data
# port = .....
server_id = 15
改完后保存退出,重启mysql服务,cmd命令行#net stop mysql关闭服务,然后#net start mysql启动服务;一定要管理员权限运行cmd哦
2.在主库创建从库用户
进入主服务器的mysql界面,命令: # mysql -u root -p 123456 //我这里mysql账号是root,密码是123456
在mysql操作界面下,输入下面几行命令:
mysql> insert into mysql.user(host,user,password) values('localhost','slaveuser',password('123456'));
mysql>flush privileges;
mysql>grant replication slave on *.* to 'slaveuser'@'192.168.84.15' identified by '123456' with grant option;
3.查看主服务器bin日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作时这两值会发生改变).
mysql>show master status; 会显示mysql-bin.000004 和 107 ,你的可能跟我的不一样,并且每次都会变化,要记住这两个值
4进入从服务器mysql
命令: # mysql -u root -p 123456
关闭slave(如果你不知道以前有没有配置过主从,都先关闭)
命令:stop slave;
然后输入如下语句:
mysql>change master to master_host="172.20.84.23",master_user="slaveuser",master_password="123456",
master_log_file="mysql-bin.000004",master_log_pos=107;
执行成功后,启动slave #start slave;
5.输入#show slave status\g;(注意这里最后加了\g输出一目了然,不加的话字段太多,排版都乱了)
查看是否配置成功,如果slave_io_running和slave_sql_running都为yes的话就成功了,赶紧去测试吧(在主服务器建库、建表、插入数据,然后去从服务器查看吧)
上一篇: mysql分区功能详细介绍,以及实例
下一篇: MySql的常用操作
推荐阅读
-
win10下安装mysql5.7.25版本
-
Mysql5.7.18的安装与主从复制图文详解
-
windows server 2008 64位MySQL5.6免安装版本配置方法图解
-
MySQL5.7.18主从复制搭建(一主一从)教程详解
-
使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '''' for column ''createtime''
-
mysql+centos7+主从复制
-
MYSQL 完全备份、主从复制、级联复制、半同步小结
-
MySQL 5.7 zip版本(zip版)安装配置步骤详解
-
Mysql 5.6.37 winx64安装双版本mysql笔记记录
-
Mysql5.7 windows免安装版本 初始化配置