主从的作用
1.可以当成一个备份来认识
2.用来实现读写分离,缓解数据库的压力
3.实现服务器的负载均衡,可以数据备份,保证数据库稳定。
4.辅助项目稳定,有一个库不能用,其他库依然可以支持项目访问。
同步复制
所谓的同步复制,意思是master的变化,必须等待slave-1,slave-2,...,slave-n完成后才能返回。
这样,显然不可取,也不是MYSQL复制的默认设置。比如,在WEB前端页面上,用户增加了条记录,需要等待很长时间。
异步复制
如同AJAX请求一样。master只需要完成自己的数据库操作即可。至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQL的默认设置。
半同步复制
master只保证slaves中的一个操作成功,就返回,其他slave不管。
这个功能,是由google为MYSQL引入的。
服务的安装
mysqld -install 服务名--defaults-file="D:\Program Files\mysql-s\mysql-5.7.17-02\my.ini"
初始化
mysqld --initialize-insecure --user=服务名
启动服务
net start 服务名
服务的卸载步骤:
停止服务:net stop myMaster(服务名)
卸载服务:mysqld remove myMaster(服务名)
My.ini主要的配置
port = 3307 #mysql数据库的端口号,保证唯一性
server_id =11 #mysql数据库的服务id , 保证唯一性
log_bin=mysql-bin #进行日志记录
数据库的配置命令:
授权
1.GRANTREPLICATION SLAVE ON *.* TO 'mysql'@'127.0.0.1'IDENTIFIED BY '1234';
输出:QueryOK, 0 rows affected 查询ok,0行受影响
查看主数据库状态
2.show master STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000064| 907 | | |
+------------------+----------+--------------+------------------+
1 row in set
从库连接成功,停止从库复制工作
3.stop slave;
输出:Query OK, 0 rows affected 查询ok
配置主库信息
4.change master to
master_host='127.0.0.1',#主服务器IP
master_user='root', #主服务器访问从服务器的用户,即上述第三条第2 小条第2子条所述帐号
MASTER_PORT=3007,
master_password='', #主服务器访问从的密码,即上述第三条第2小条第2 子条所述密码
master_log_file='mysql-bin.000002', #主服务器起始的binlog文件 名,即图2的file
Master_log_pos=358; #主服务器binlog起始位置,即图2的postion
开启从库复制工作
5.start slave;
查看从库状态
6.show slave status; 出现下图状态的话,恭喜你,配置成功
自己配置,简单粗暴,主从的作用不在配置,当你应用到项目里,加上多数据源切换,效果会很明显