mysql主从复制

背景:目前公司用的天翼云服务器,我在云服务器上安装了一个mysql5.7,服务器申请下来以前用的是公司的实体服务器,如今想把云服务器上的mysql作主数据库,公司实体数据库作从数据库。mysql

参考资料:https://blog.51cto.com/mihuge/1269398sql

备注说明:这两个服务器用的都是window server 2008 r2,实体服务器用的是花生壳的内网穿透。数据库

ip:云服务器:140.149.12.202(我乱写了一个);       本地实体服务器内网穿透后的路径:2a123445z1.qicp.vip:41023(花生壳自动分配的端口)服务器

一:主数据库配置:ide

  找到my.ini文件,若是找不到,须要查看隐藏文件:工具

  打开文件夹选项:测试

  

  选中‘显示隐藏的文件、文件夹和驱动器’3d

  

  配置文件的路径为:C:/programData/MySQL/MySQL/MySQL Server 5.7/my.ini(实在找不到能够在地址栏数据%ProgramData%,而后按回车)server

       

 

  在mysqld节点下面设置:blog

  server-id=1

  log-bin=mysql-bin

  binlog-do-db=xxxx(这里写你须要同步的数据库的名字)

  binlog-ignore-db = mysql(这里写不须要同步的数据库的名字)

  保存并重启mysql服务。

  建立新用户slave,密码slave,不建议使用root

  mysql>grant replication slave,reload,super on *.* to slave@2a123445z1.qicp.vip identified by 'slave';

  说明:最后的‘slave’是密码,‘@2a123445z1.qicp.vip’是mysql所在主机的ip,倒数第二个slave是你想建立的用户名

  

  特别说明:由于我这种状况是数据外网访问,因此我又增长了一步,给这个新建立的用户外网访问的权限,这个不会的能够自行百度,后期也会写mysql容许外网访问的博客。

  mysql>show master status;

  #记录File和Position的数值

   

 

 2、从数据库配置:

  同理找到mysql的配置文件my.ini

  

  

  #不须要同步的数据库名称,可不写,若是写了就要和Master上配置保持一致

  replicate-ignore-db = mysql

  保存,重启mysql服务.

  登录数据库

  mysql>change master to master_host='140.149.12.202',master_user='slave',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=855;

  mysql> start slave;

  mysql> show slave status\G

  其中Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 两项都为Yes,说明配置成功.此时改动主库信息,从库会自动同步,能够本身测试下.

 

  这里要注意几点

  1.在mysql5.1以上版本中是不支持master设置的,若是添加了master设置,数据库就没法重启了.因此建议主库只须要指定server-id和log-bin便可,这样配置有一个好处就是你在从服务器配置的时候只要添加同步的数据库无需在配置主.

  2.通常错误都是都是File和Position的数值不一致.

  3.最好在dos下使用命令配置,最好不要使用一些图形的工具,如Navicat之类的工具.

  再次感谢:https://blog.51cto.com/mihuge/1269398

相关文章
相关标签/搜索