MySql主从搭建

最后更新于:2022-04-01 23:52:24

:-: **MySql主从搭建 Windows** > ## 在MySQL5.7新版本中 不推荐修改my.cnf或者my.ini [主从搭建原文跳转--亲测可用](https://blog.csdn.net/pz_winner/article/details/78296085) > 主库master 找到 mysql中的 my.ini 文件 寻找 [mysqld] 一般在末尾 添加如下代码 ``` [mysqld] port = 3306 ;数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值; server-id = 1 ;启用二进制日志; log-bin = mysql-bin ;需要同步的二进制数据库名; binlog-do-db = test ;不同步的二进制数据库名,如果不设置可以将其注释掉; ;binlog-ignore-db = information_schema ;binlog-ignore-db = mysql ;binlog-ignore-db = personalsite ;binlog-ignore-db = test ;设定生成的log文件名; log-bin = "binLog" ;把更新的记录写到二进制文件中; log-slave-updates ``` **如果有 Navicat 数据库管理工具 直接在主库添加一个用户组 ** **我的用户为 ** **用户名称:slave** **主机地址:从库地址** **密码:******** **权限:file、reload、replication Slave、super** > 也可使用命令 **> 注意:创建用户时,不推荐之间grant生成用户 ;应该先create创建用户 然后 grant授权用户** ``` 创建用户 ——不推荐使用—— IP:192.168.1.100 或 192.168.1.%匹配整个1网段 grant replication slave on *.* to '用户名'@'从库IP' identified by '密码'; ——推荐—— 先创建用户 create user '用户名'@'从库IP' identified by '密码'; 授权用户 grant replication slave on *.* to 用户名@'从库IP'; ``` ``` mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER,FILE ON *.* TO {mysql_backup主库地址}@'%' IDENTIFIED BY '{密码}'; ``` **注:命令执行完成之后要刷新用户组** ``` mysql> flush privileges; ``` **** **** > 从库 去 my.ini 文件中 ``` [mysqld] port = 3306 server-id=2 log-bin=mysql-bin relay-log=relay-bin relay-log-index=relay-bin-index replicate-do-db=test ``` > server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。 relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。 有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。 > 停止从库 ``` mysql> stop slave; ``` > 链接主库 ``` mysql> CHANGE MASTER TO master_host = '127.0.0.1',  master_user = 'mysql_backup',  master_password = '123456', #  master_log_file = 'mysql-bin.000008', #  master_log_pos = 120;    ``` **注意:加#的参数在上图的show master status \G;中找 去主库中执行此命令** > 启动从库 ``` Start slave ``` > 查看从库状态 ``` Show slave status ``` ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/e6297f7da0a183cf2cbfd20454cd45bb_925x839.png) 显示都为yes 就搭建成功了
';