MYSQL分布式集群使用-主从复制

MYSQL分布式集群使用-主从复制

大家好,又见面了,我是全栈君。

要达到分布式布局,需要满足2个条件:

1. 框架程序的支持,如Thinkphp、YII2。

> TP的支持文档:http://document.thinkphp.cn/manual_3_2.html#distributed_database

2. 数据库的配置,使其支持主从或主主关系拷贝。

> 主从复制(亦叫 读写分离)
> 主主复制(亦叫 互为主从,主主互备或双机热备)

主从复制,亦可称为读写分离

假设:
主服务器 -> 192.168.1.110
从服务器 -> 192.168.1.111

  • 主服务器配置

    • A) 修改配置文件 (开启bin-log)

    • B) 创建授权帐号

  • 从服务器配置

    • A) 修改配置文件 (另置server-id)

    • B) 使用命令开启slave

    • C) 检查从服务器复制功能状态

主服务器配置

A) 修改配置文件 (开启bin-log)

开启日志记录文件

vim /etc/my.cnf
server-id=1      #[必须]服务器唯一ID,同步的时候,根据此ID判断,如果server_id是自己就不需要同步
log-bin=mysql-bin   #[必须]启用二进制日志
sync_binlog=1    #sync_binlog=n,每n次写入binlog缓存时交换到硬盘里。默认为0,就是根据系统周期进行交换,效率最高,但安全性低,如果要做同步,设置为1。
  
#保存后,重启数据库
service mysqld restart

B) 创建授权帐号

mysql>GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456'; //此处可用具体客户端IP代替,如192.168.1.111,加强安全。
mysql>flush privileges;  

C) 查看MASTER状态

mysql>show master status;  
+------------------+----------+--------------+------------------+  
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
+------------------+----------+--------------+------------------+  
| mysql-bin.000004 |      308 |              |                  |  
+------------------+----------+--------------+------------------+  
1 row in set (0.00 sec)  
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

从服务器配置

A) 修改配置文件 (另置server-id)

vim /etc/my.cnf
server-id=2      #[必须]服务器唯一ID
  
#保存后,重启数据库
service mysqld restart

B) 使用命令开启slave

mysql>change master to master_host='192.168.1.110',master_user='backup',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=308;  
mysql>start slave; #启动从服务器复制功能

C) 检查从服务器复制功能状态

mysql> show slave status\G
  
*************************** 1. row ***************************  
  
           Slave_IO_State: Waiting for master to send event
           Master_Host: 192.168.2.222  //主服务器地址
           Master_User: mysync   //授权帐户名,尽量避免使用root
           Master_Port: 3306    //数据库端口,部分版本没有此行
           Connect_Retry: 60  
           Master_Log_File: mysql-bin.000004  
           Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
           Relay_Log_File: ddte-relay-bin.000003  
           Relay_Log_Pos: 251  
           Relay_Master_Log_File: mysql-bin.000004  
           Slave_IO_Running: Yes    //此状态必须YES
           Slave_SQL_Running: Yes     //此状态必须YES
                 ......  
  
lave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成,可以开始测试了。
在主服务器上插入一条数据,就可以看看从服务器的数据库是否已更新就OK了。

MYSQL分布式集群使用-主从复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111896.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python学习笔记二(高级特性)

    Python学习笔记二(高级特性)本文主要对Python的函数调用的使用进行讲解。

    2022年6月17日
    30
  • python的数组怎么用_python数组的使用

    python的数组怎么用_python数组的使用1 Python 的数组分三种类型 1 list 普通的链表 初始化后可以通过特定方法动态增加元素 定义方式 arr 元素 2 Tuple 固定的数组 一旦定义后 其元素个数是不能再改变的 定义方式 arr 元素 2 Dictionary 词典类型 即是 Hash 数组 定义方式 arr 元素 k v 2 下面具体说明这些数组的使用方法和技巧 1 list 链表数组 a

    2025年10月15日
    2
  • R-L模型算法的优缺点_风筝模型公式

    R-L模型算法的优缺点_风筝模型公式介绍Logistic回归算法,名字虽带有回归,但其实是一个分类模型。输出Y=1的对数几率是由输入x的线性函数表示的模型,直接对分类的可能性进行建模,并不是直接对分类的结果(0或者1)进行建模:假设一个样本属于正样本的概率为p,则:LR模型是在线性回归的基础上,把特征进行线性组合,再把组合的结果通过一层sigmoid函数映射成结果是1或是0的概率。逻辑斯蒂回归模型的特点:…

    2022年10月13日
    5
  • pytest fixtures_pytest conftest.py文件

    pytest fixtures_pytest conftest.py文件fixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月28日
    4
  • Pycharm安装django包[通俗易懂]

    Pycharm安装django包[通俗易懂]**pycahrm安装django1.点击file,找到settings点击**2.找到project,点击projectinterpret3.点击旁边的加号4.搜索栏输入django搜索,看到django选项后直接点击然后安装最后安装成功后会有一个successful的提示,然后安装完成后可以在电脑里面打开cmd命令行激活django看是否能运行:5.输入activatedjango激活到此,django安装包已经安装成功…

    2022年8月29日
    7
  • PhpStorm中如何使用Xdebug工具,入门级操作方法

    PhpStorm中如何使用Xdebug工具,入门级操作方法

    2021年10月14日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号