如上图,我将会将数据库拆分为一个写库,两个读库。
主从复制
- 找到Mysql所在的安装目录:整体复制两份到别的地方,在复制之前应该先停掉MYSQL服务。
- 修改复制过来的conf下的my.ini文件:修改端口号分别为3307,3308
- 修改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都没问题,表示运行成功