Mysql实现读写分离、主从同步

如上图,我将会将数据库拆分为一个写库,两个读库。

主从复制 

  1. 找到Mysql所在的安装目录:整体复制两份到别的地方,在复制之前应该先停掉MYSQL服务。
  2. 修改复制过来的conf下的my.ini文件:修改端口号分别为3307,3308
  3. 修改basedir和datadir:

在Mysql目录下新建data文件夹

 

4.以管理员身份运行命令提示符:

5.进行如下输入:

但此时会遇到缺少系统文件夹的问题,解决方式:

去本机MYSQL中将data中的mysql文件夹复制到现在正在初始化的MYSQL从库下的data目录下:

6.

扫描二维码关注公众号,回复: 2573366 查看本文章

复制系统数据库文件夹到slave(数据库名称,performance_schemal,sys)

服务安装成功后,在服务窗口进行启动数据库-->正在运行

连接数据库

 

这时点击数据库表会发现数据库表不存在的错误:解决方式:

table don‘t exist --->复制文件的时候在系统数据库复制的不够全面。数据库表文件内容存放的地址是ibdata1文件,复制过去刷新表

主从复制的原理:当主库发生改变时,会记录一条二进制的日志,从库会读取日志,把主库的动作复制过来,作出相应的改变。

在主库和从库的my.ini文件中添加如下配置:

log-bin=mysql-bin

同步哪一个数据库?自己添加以下语句:

binlog-do-db=数据库名称

 从库的配置:

replicate-do-db=数据库名称

master数据库:

      运行如下命令:

show MASTER STATUS

 结果:

 slave运行如下命令:

change master to master_host='127.0.0.1',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=154;

开启slave:

START SLAVE

在slave中输入如下命令:

show SLAVE STATUS

显示结果:

IO和SQL都没问题,表示运行成功

猜你喜欢

转载自blog.csdn.net/Back_Light_F/article/details/81111054