ThinkPHP + MySQL sincronización maestro-esclavo para lograr la lectura y la escritura por separado

ThinkPHP + MySQL sincronización maestro-esclavo para lograr la lectura y la escritura por separado

Perfil, ThinkPHP entorno de dos MySQL +

separadas de lectura y escritura, maestro-esclavo de sincronización Advantage

  • recuperación de desastres en tiempo real, para la conmutación por error;
  • separadas de lectura y escritura, para proporcionar el seguimiento, el equilibrio de carga;
  • Seguimiento de los datos, para evitar el impacto del tráfico.

separadas de lectura y escritura, un principio de sincronización primario de

  • servicio de servidor maestro MySQL todas las operaciones de escritura grabada en el registro de log binario y generar hilo de volcado de registro pasará binlog log de E / S hilos de los servicios de MySQL servidor.
  • Genera dos hilos desde el servicio MySQL servidor, una I / O hilo, el otro es el hilo SQL.
  • A partir de la biblioteca de E / S solicitud binlog hilo en el registro de la base de datos principal, y el archivo de registro se escribe relaylog binlog (log retardado) en.
  • flujo SQL lee de la base de datos relaylog contenido en y analiza en operación específica para conseguir un funcionamiento maestro-esclavo consistente, el propósito de los datos finales de acuerdo con dos bases de datos.

Configuración ThinkPHP

  • Modificar config / database.php
    // 启用分布式数据库
    'deploy'    =>  1,
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '192.168.1.1,192.168.1.2',
    // 数据库名
    'database'    => 'demo1,demo2',
    // 数据库用户名
    'username'    => 'root1,root2',
    // 数据库密码
    'password'    => 'pass1,pass2',
    // 数据库连接端口
    'hostport'    => '3306',
    //开启读写分离
    'rw_separate'     => true,
    

configuración de mySQL

这里 'deploy'    =>  1,表示启用分布式数据库 'rw_separate'     => true,开启读写分离
demo1,demo2代表你两个数据库名,其他类似。
  • Configuración de MySQL sincronización maestro-esclavo

    • MySQL modificar el archivo de configuración, utilizo la pagoda instalado (etc / my.cnf) bajo
    • log-bin=mysql-binabierto
    • server-id = 1Esto representa la biblioteca principal y la biblioteca ya sea de la misma, cualquiera que sea el valor.
    • La operación anterior se debe configurar de la biblioteca principal de la biblioteca
  • Configuración principal de la biblioteca

    • Crear un usuario, desde cada servidor tendrá que utilizar un nombre de cuenta y contraseña para conectar con el maestro, cada uno puede crear una cuenta en el servidor, puede hacer que todos los servidores utilizan la misma cuenta. Aquí es todo el mismo segmento ip sólo desde el servidor para crear una cuenta de sincronización maestro-esclavo. En primer lugar MySQL aterrizaje y, a continuación, crear un usuario llamado maestro, la contraseña es 123456 cuenta, que se puede utilizar 192.168.1.1, y la cuenta sólo puede ser la sincronización maestro-esclavo
    • CREATE USER 'master'@'192.168.1.1' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'master'@'1192.168.1.1' IDENTIFIED BY '123456' WITH GRANT OPTION;

  • A partir de la configuración de la biblioteca

    • A partir de la biblioteca en el servidor MySQL
      CHANGE MASTER TO
      MASTER_HOST='192.168.1.1',
      MASTER_USER='master',
      MASTER_PASSWORD='123456',
      MASTER_LOG_FILE='mysql-bin.000097',
      MASTER_LOG_POS=1507;

    • Ver LOG_FILE y POS MySQL entrado en el servidor maestro show master status\Gpuede ver, no copiar directamente la configuración anterior, si ha copiado y puesto en práctica, entonces se puede stop slavecerrar el servicio, y luego volver a ejecutar la nueva configuración, es decir, mysql restart puede.

Publicado cuatro artículos originales · ganado elogios 0 · Vistas 68

Supongo que te gusta

Origin blog.csdn.net/qq_32450143/article/details/105047869
Recomendado
Clasificación