下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

在windows下如何对mysql数据库主进行从配置

作者:课课家教育     来源: http://www.kokojia.com点击数:1218发布时间: 2019-01-03 11:21:44

标签: mysql数据库mysql运维mysql视频学习

  我们为什么要进行主从同步配置呢?

  大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。

  在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一。尤其是在大规模系统中,数据库集群已经成为必备的配置之一。集群的好处主要有:查询负载、数据库复制备份等。其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情。我们这样的分离是把写操作集中在一个节点上,而读操作其其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

  假设我们现在在Windows下配置MySQL数据库主从,具体内容如下:

  所用到工具:

  Mysql、NavicatPremium;

  主库设置:

  一.设置my.ini文件;

  1.在安装目录下找到my.ini文件:

  默认路径:C:\\ProgramFiles\\MySQL\\MySQLServer5.0

 1.在安装目录下找到my.ini文件:    默认路径:C:\\ProgramFiles\\MySQL\\MySQLServer5.0

  2.在my.ini文件中找到[mysqld](#注释自行删除)

  添加如下配置:

  server-id=1#这是数据库ID此ID是唯一的,ID值不能重复,否则会同步出错;

  log-bin=mysql-bin#二进制日志文件,此项为必填项,否则不能同步大数据学习路线图数据;如果不取名字的话,那么就会以计算机的名字加编号来命名二进制文件;

  binlog-do-db=mstest#同步的数据库

  binlog-do-db=test#同步的数据库

  binlog-do-db=keyboard#同步的数据库

  binlog-ignore-db=mysql#不需要同步的数据库

  如图:

 binlog-do-db=keyboard#同步的数据库    binlog-ignore-db=mysql#不需要同步的数据库    如图:

  重启MySql服务(停止、启动)

重启MySql服务(停止、启动)

  注意点:在Linux下,只需要修改/etc/my.cnf即可,但是在windows下,小编改了安装目录下的my.ini,发现配置并不生效,后来小编看到了服务中的mysql服务的属性,发现了这么一句话:"C:\\ProgramFiles\\MySQL\\MySQLServer5.6\\bin\\mysqld.exe"--defaults-file="C:\\ProgramData\\MySQL\\MySQLServer5.6\\my.ini"MySQL56,原来mysql服务读取的配置文件在这里,后来修改了这个路径下的my.ini,重启服务,配置就生效了。

  3.确认主库的serverid和需要同步的数据库及不用同步的数库

  打开NavicatPremium连接主库

  (1)按F6或在[工具]中找[命令列表界面]

  输入:SHOWVARIABLESLIKE'server_id';

  确认serverId

  输入:showmasterstatus;

  确认:需要同步的数据库及不用同步的数库下图中file和position在从库配置中会用到(每次修改主服my.ini文件file和position参数都会变)

  如图:

 确认:需要同步的数据库及不用同步的数库下图中file和position在从库配置中会用到(每次修改主服my.ini文件file和position参数都会变)    如图:

  4.为从库创建账号:

  1).如图:

 4.为从库创建账号:    1).如图:

  其中%代表任何主机都能连接该数据库

  2).添加账号权限:服务器权限全部选上

 2).添加账号权限:服务器权限全部选上

  主库配置OK

  二.从库配置

  1).用主库创建的账号密码连接一下看是否能正常连接

  2).同样找到my.ini文件进行配置文件

  找到[mysqld]节点

  server-id=2#和主库不一致

  master-host=192.168.0.103#主库IP(和从库是局域网)

  master-user=slave

  master-password=123

  master-port=3306

  master-connect-retry=60

  replicate-do-db=test#需要同步的表

  replicate-do-db=keyboard#需要同步的表

  replicate-ignore-db=mysql#不需要同步的表

  如图:

 replicate-ignore-db=mysql#不需要同步的表    如图:

  3).重启MySql服务打开任务管理器找到mysql停止一下然后启动bingo

 3).重启MySql服务打开任务管理器找到mysql停止一下然后启动bingo

  注意:在这里可能会无法链接到主数据库,需要看主数据库中my.ini中bind127.0.0.1是否没有被注释,如果没有,那么只能在本机登录,而不能使用远程登录方式。

  4).设置运行代码从库配置

  (1)输入:stopslave;

  说明暂停从库

  (2)输入:

  changemastertomaster_host='192.168.0.103',master_port=3306,master_user='slave',master_password='123',master_log_file='mysql-bin.000005',master_log_pos=98;

  说明:对应着改成你们自己的配置

  关于File和Position('mysql-bin.000005'98)是主库配置中的第3步得到的主库中输入命令showmasterstatus;

  (3)输入:startslave;

  说明启动;

  如图:

 (3)输入:startslave;    说明启动;    如图:

  5).检验是否可以打通了

  输入:showslavestatus;

  当然他们说这样也可以(但我不行)showslavestatus\\G(没有分号),查看

  Slave_IO_Running:Yes

  Slave_SQL_Running:Yes

  输入指令之后

Slave_IO_Running:Yes    Slave_SQL_Running:Yes    输入指令之后

  会出现较长文字不好看于是小编将其复制到text上如下图:

 会出现较长文字不好看于是小编将其复制到text上如下图:

  三.验证(可不看自行验证):

  主库:

 三.验证(可不看自行验证):    主库:

  从库:

从库:

  (2)小编在ogg主库添加几张表:

  主库:

(2)小编在主库添加几张表:    主库:

  从库:

 从库:

 

  

总体来说indows下如何对mysql数据库主在缓存穿透、击穿和雪崩上是以预防为主,补救为辅。而在应对缓存的这些问题上其实也没有一个完全完美的方案,只有最适合自己业务系统的方案。目前如果直接使用indows下如何对mysql数据库主缓存框架已经基本能应对大部分的缓存问题了。

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程