在windows环境下学习mysql主从配置或一主多从配置

数据库的主从配置即数据的读写分离,主要用于缩短大数据的并发处理时间,从而提高数据执行效率,当然也会导致数据库之间的数据复制出现时间差,使得更新的数据无法及时被读取到,如果通过读写分离并发数据还是高的话,可以考虑数据库表再次纵向切割 分离出多个数据库表到不同数据库中,也可以横向切割分离数据记录到多个库表中(比如按区域划分访问用户到不同的服务器的数据库中),实现多服务器分担数据流量,保证服务持续运行。
一、环境介绍及说明
1、所需软件:win7,VMware,win2003Ser(也可win7),mysql-5.5.40-win32.msi
2、一台PC机学习规划:
 (1)win7上安装mysql-5.5.40-win32,配置成主库
   IP地址:192.168.1.11 端口3306
 (2)在win7下安装VMware虚拟出一台PC然后安装windows2003Ser
   然后在win2003Ser上安装mysql-5.5.40-win32,配置成从库
   IP地址:192.168.1.111 端口3306
 (3)安装MySQL注意字符一般选择默认的UTF8编码,允许远程登录
 (4)为了实现一主两从配置,在全面配置调试完一主一从MYSQL后使用VMware复制功能快速复制以上已安装配置MYSQL的win2003Ser系统做为第二PC从机,修改计算机名、IP地址和MYSQL安装目录下的my.ini中server_id不同数值,重启后参照最后文章介绍的出错配置,很方便构造出多台从机环境。
3、修改win7主库MySQL安装目录下的my.ini文件,相关数值如下:

[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=INNODB
server_id = 1 # 主库和从库需要不一致,分别配一个唯一的ID编号
log_bin=master-bin
log_bin-index=master-bin.index  # 二进制文件存放路径,存放在根目录data文件夹下
binlog-do-db=web   # 需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制,这里要是配置了,同时也要在Slave(也就是你的从库) 上设定。
# binlog-ignore-db=mysql    # 不需要复制的库,和上项同理

一般情况下我们设置需要同步的数据库就可以了,多库使用,号分割开
4、修改win2003Ser从库MySQL安装目录下的my.ini文件,信息配置同上但需修改server_id为不同数值,如果是多台从机也需保持不同。

server_id = 2   # 主库和从库需要不一致(唯一的ID编号)

参考网络部分教程修改从库的log_bin和log_bin-index为以下,没有测试成功

relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

5、主从库都分别重启一下MySQL,在系统控制面板的管理工具的服务中能找到
6、关联主库(192.168.1.11)与从库(192.168.1.111)
7、在主库的win7的CMD登陆本机的MySQL后,执行命令 show master status 查看主库的状态,并记录下查看到的信息,具体记录以下信息:
File和Pos位置
8、在win2003Ser从库上也执行命令 show slave status 查看slave的状态
在这里插入图片描述
我们可以发现 ,master的状态下,生成了一个二进制的日志文件,而slave下是空的,所以我们现在就要把主库与从库关联起来。
9、在主库中建立一个用户(专门用给从库连接的,命令务必在主库中完成):链接的主库IP地址设置为%,有利于配置多台从机Slave,即一主对多从。

create user test;
GRANT replication slave ON *.* TO 'libin'@'%' IDENTIFIED BY 'abc123';
flush privileges;   # 刷新权限 

在这里插入图片描述
上图用户名和密码配置我当时测试时没有考虑到一主多从的配置
10、现在我们切到win2003Ser从库(slave),把主库与从库联系起来。
执行以下命令:

change master to master_host='192.168.1.11',master_port=3306,master_user='libin',master_password='abc123',master_log_file='master-bin.000002',master_log_pos=107;

注意:上面的master-bin.000002和107要和show master status中 查询到的一致
然后执行命令 start slave 开启主从同步,如下图所示:
在这里插入图片描述
上图用户名和密码配置我当时测试时没有考虑到一主多从的配置
11、经过上面的步骤已经完成了,最后来测试下主从数据库同步情况,测试前可分别重启主从服务器,再使用命令在win7的主库上建立一个数据库web,然后再到win2003Ser从库上查看,如果无误在从库上也会自动同步过来一个数据库web,当然如果不想使用命令建表,也可以使用mysql的可视化管理软件Navicat(MySQL可视化管理软件,可网络搜索)在win7主库中来建库表或录入数据记录,然后到从库中查看同步情况。
在Navicat中测试的情况
如果需要设置多从复制,在上面的一主一从配置调试完成后,可以在VMware中快速的使用第一台PC机复制出第二台PC机系统,修改计算机名和IP地址及MYSQL安装目录下的my.ini中server_id为所有服务器的不同数值,重启机器后若有误继续以下参考配置。
在这里插入图片描述
如果(复制出来的)系统Slave端的MYSQL命令模式下使用命令show slave status\G出现错误提示:
Slave_IO_Running:NO
可能是主从同步出现了问题,解决方法为:
1、在Win7主控端的MYSQL命令模式下输入以下查看产生的备份文件及定位点
mysql> show master status; (假设出现以下提示:)
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------------±-------------±-------------±-----------------+
| master-bin.000015 | 238 | | |
±-----------------------±-------------±-------------±-----------------+
2、在Win2003(复制的系统)第二从端的MYSQL命令模式下输入以下命令修改文件名及定位点

mysql> stop slave;
mysql> change master to Master_Log_File='master-bin.000015',Master_Log_Pos=238;
若提示更新失败,可以试试执行全部修改或部分(去除不修改相应参数)命令
mysql> reset slave;
mysql> change master to master_host='192.168.1.11',master_port=3306,master_user='libin',master_password='abc123',master_log_file='master-bin.000015',master_log_pos=238;
然后继续下面
mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

其实以上的change master to XXX=YYY,ZZZ=GGG等都可以修改win200Ser从机上MYSQL命令模式中使用show slave status\G命令看到的对等数值,在主机上查看命令是 show master status,在从机上查看命令是show slave status\G,如看到的信息不一致,均可先stop slave再使用change master to 修改后记得start slave,再使用show slave status\G看看是否修改过来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值