一、安装前所做准备
主数据库:192.168.219.128
从数据库:192.168.10.24
操作系统:
主数据库 centos 6.5(虚拟机)
从数据库 window7
centos安装mysql
1. yum install -y mysql-server(仅仅做远程链接,不需要mysql-client)
2. service mysqld start 初始化数据库
3. 设置本地登录密码 mysqladmin -u root -p root
4. 成功登录,放开远程登录权限
# : mysql -> mysql -u root -p root -e "grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# : mysql -> flush privileges;
(远程连接成功,连接失败首先排除一下防火墙的问题)
# : service iptables stop 停掉防火墙再次进行连接,如果成功,则需要配置一下防火墙规则放开3306端口
5. 设置主数据库
log-bin=mysql-bin
主数据库查询配置
show master status;
配置成功
6. 配置从数据库
① 首先在主数据库配置从数据库访问权限
# : GRANT REPLICATION SLAVE ON *.* TO'slave'@'192.168.10.24' IDENTIFIED BY 'slave';
主数据库:192.168.219.128
从数据库:192.168.10.24
操作系统:
主数据库 centos 6.5(虚拟机)
从数据库 window7
centos安装mysql
1. yum install -y mysql-server(仅仅做远程链接,不需要mysql-client)
2. service mysqld start 初始化数据库
3. 设置本地登录密码 mysqladmin -u root -p root
4. 成功登录,放开远程登录权限
# : mysql -> mysql -u root -p root -e "grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# : mysql -> flush privileges;
(远程连接成功,连接失败首先排除一下防火墙的问题)
# : service iptables stop 停掉防火墙再次进行连接,如果成功,则需要配置一下防火墙规则放开3306端口
5. 设置主数据库
log-bin=mysql-bin
server-id=1
binlog-do-db=app #需要复制的数据库,如果没有本行,即表示复制所有的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
主数据库查询配置
show master status;
6. 配置从数据库
① 首先在主数据库配置从数据库访问权限
# : GRANT REPLICATION SLAVE ON *.* TO'slave'@'192.168.10.24' IDENTIFIED BY 'slave';
GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO'slave'@'192.168.10.24' IDENTIFIED BY 'slave';
② server-id=2
replicate-do-db=app② server-id=2
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
master-host=192.168.219.128
master-user=slave
master-password=slave
master-connect-retry=60
注:这一步遇到了坑,10.24的库拉服务拉不起来,最后追踪系统日志发现是因为master-host属性无法识别,如下图,
最后查到原因是因为mysql 5.17版本之后就不再支持master-host master-user master-password等一系列属性;
更新后的配置为:
server-id=2
replicate-do-db=app
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
完成上列my.cnf文件的配置,还需要在从库中执行此sql命令
change master to master_host='masterIP', master_user='slave', master_password='slvaePASS',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=780;
masterIP 是 主数据库ip地址,master_user 是主数据库分配给从数据库访问的权限账号,master_password为密码;
然后执行sql
show slave status 查询是否配置成功(下图是成功进行主从配置之后的图);
然后再执行sql
start slave.
发现 binlog属性提醒 :binlog truncated in the middle of event。。再一次遇坑。。查的结果基本上都是 主数据库的pos值和从数据库的值不匹配,或者是serviceId有冲突,具体的还要查看binlog日志定位问题所在,改正后成功如上图。。。
测试主数据库添加数据,从库是否进行了同步
成功进行同步。。。。。
最后总结这次主从配置的问题,配置其实不太难,很多主从属性是没有用上的,这里只配了最简单的属性,还有一点,出了问题,别着急,一定要看日志,一定要看日志,一定要看日志。。。重要的事情说三遍