🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
MySQL主从模式是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,从节点可以复制主数据库 中的所有数据库,或者特定的数据库,或者特定的表。 Mysql主从同步是一个异步复制的过程,要实现复制首先需要在master上开启bin-log日志功能,整个过程需要开启3个线程,分别是Master开启IO线程,slave开启IO线程和SQL线程。 主从复制的优点: 1.实时灾备,用于故障切换(高可用)。服务器或者数据库突然砸机了,可以立即切换到从数据库,然后修改读写设置。 2.读写分离,提供查询服务(读扩展) 3.数据备份,避免影响业务(高可用) 【具体操作】 两台服务器安装mysql后: 主master : 8.210.238.162 从slave : 47.243.35.119 【主库】 主节点(Master)配置。修改 Master 的配置文件/etc/my.cnf ``` vim /etc/my.cnf ``` 在my.cnf文件中加入如下配置内容 ``` [mysqld] server_id=1 log-bin=mysql-bin ``` ``` service mysqld restart # 重启mysql 方法1 ``` mysql运行 ``` mysql -u root -p use mysql; set global validate_password.policy=0; # 设置密码强度为low set global validate_password.length=4; # 设置密码长度 CREATE USER 'user1'@'47.243.35.119' IDENTIFIED WITH mysql_native_password BY 'password1'; GRANT REPLICATION SLAVE ON *.* TO 'user1'@'47.243.35.119'; flush privileges; ``` ``` SHOW MASTER STATUS; # 获取主节点当前binary log文件名和位置(position) ``` 【从库】 从节点(Slave)配置。修改 Slave 的配置文件/etc/my.cnf ``` vim /etc/my.cnf ``` 在my.cnf文件中加入如下配置内容 ``` [mysqld] server-id=2 ``` ``` systemctl restart mysqld # 重启mysql 方法2 ``` mysql运行 ``` mysql -u root -p CHANGE MASTER TO MASTER_HOST='8.210.238.162', MASTER_USER='user1', MASTER_PASSWORD='password1', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=156; ``` ``` start slave; #开启主从同步 stop slave; #关闭主从同步 show slave status \G; 查看主从同步状态 ``` 清除主从配置 ``` reset master; # 主库 reset slave all; # 从库,先stop slave; 参数all将内存中的数据也会被清除掉。 ``` 参考: [https://www.cnblogs.com/atcloud/p/10773855.html](https://www.cnblogs.com/atcloud/p/10773855.html) [https://www.freesion.com/article/9714681852/](https://www.freesion.com/article/9714681852/)