环境:
操作系统——windows 7
数据库——mysql5.6.msi
1.在windows7中安装mysql5.6.msi安装版,假设安装在c:\mysql5.6目录,
到安装目录,把my-default.ini复制一份,或者更名为my.ini,然后把my.ini里面相应的内容改改:
basedir = C:\mysql5.6
datadir =C:\mysql5.6\data
port = 3306
server_id = 1
log-bin=mysql-bin
通过cmd(以管理员身份运行)切换到c:\mysql5.6\bin目录,然后执行如下命令来安装mysql服务:
mysqld install
暂时不要启动mysql服务。
2.把c:\mysql5.6目录复制一份,命名为mysql5.6cp,即目录为c:\mysql5.6cp,
到安装目录,把my-default.ini复制一份,或者更名为my.ini,然后把my.ini里面相应的内容改改:
basedir = C:\mysql5.6cp
datadir =C:\mysql5.6cp\data
port = 3307
server_id = 2
通过cmd(以管理员身份运行)切换到c:\mysql5.6cp\bin目录,然后执行如下命令来安装第二个mysql服务:
mysqld install mysql5.6
启动第一个mysql服务:net start mysql
启动第二个mysq服务:net start mysql5.6
3.第一个cmd登陆mysql.
mysql -uroot
mysql>grant replication slave on *.* to mysql@localhost identified by '123456' ; 创建一个远程访问的账户mysql>flush privileges; 刷新权限,为了让这个账户能直接使用
mysql>show master status; # 找到File 和 Position 的值记录下来;(从服务器就是根据这个日志来复制的.
4.第二个cmd登陆mysql
mysql -uroot -P3307
mysql>change master to master_host='127.0.0.1',master_user='mysql',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=120;
这里的配置就是使用的上面主库的信息.还有日志文件的信息,设置主库的信息.将从库和主库联系起来
mysql>start slave ;
mysql>show slave status\G;
如果出现:
Slave_IO_Runing:Yes
Slave_SQL_Running :yes
就说明成功了.然后你在主数据库的增删改查,看看从数据库.应该就会同步执行了.
不过不会这么顺利的= =.下面列出来一些我遇到的问题
1. Last_Error:XXX@localhost 失败.
没有截图了,这个是用户名和密码的问题.
首先要明确是主库费从库开了一个账户mycat,然后从库在用这个账户登录主库,拿到二进制的日志.
所以这个账户是在主库的.我一开始弄错了,把这个账户弄在了从库.所以报错.
还有一点.就是主库给从库开启权限的时候要细心一点,我从网上看到有的人是 'mycat '@localhost这一步.用户名多了个空格.或者密码多了个空格所以导致从库访问主库失败.
因此,主库开启完权限后,要先试着用这个mycat的账户远程登录主库试试.能登录才进行下一步.
2. 错误号为1062的. 类似duplicate entry的错误.
这个可能是主从库的主键冲突.
解决方式:
方式1.在从库执行set global sql_slave_skip_counter=1 这个是用来跳过错误的.
方式2:删除主和从相应记录,在主库在重新加入该记录insert.
3.uuids:冲突
解决方式:修改主或者从的auto.cnf.
先使用select uuid(),获得一个随机的UUid.在修改auto.cnf中的uuid.记得改完重启mysql.