Al realizar el desarrollo, necesito sincronizar las bases de datos MySQL. Los dos sistemas tienen la misma instalación, ambos son FreeBSD5.4 y están instalados PHP 4.4.0. La versión de MySQL es 4.1.15, que son las últimas versiones. .
1. Instale y configure
dos servidores. Instale MySQL por separado e instálelos en el directorio /usr/local/MySQL (los pasos de instalación se omiten; consulte los documentos relevantes). Las IP de los dos servidores son 192.168.0.1 y 192.168. .0.2 respectivamente Usamos 192.168.0.1 como base de datos maestra y 192.168.0.2 como servidor esclavo. Usamos sincronización unidireccional, es decir, los datos del maestro son los datos del maestro, y luego el esclavo va activamente al maestro. sincronizar los datos nuevamente.
Las configuraciones de los dos servidores son las mismas. Copiemos los archivos de configuración clave. Los archivos de configuración predeterminados están en el directorio /usr/local/MySQL/share/MySQL, que incluyen my-large.cnf, my-medium.cnf. my -small.cnf y otros escritores, solo estamos probando, solo use my-medium.cnf. Después de instalar MySQL, el archivo de configuración predeterminado se especifica en el directorio de almacenamiento de la base de datos. Estamos usando 4.1.X, por lo que el archivo de configuración debe estar en el directorio /usr/local/MySQL/var, así que copie el archivo de configuración allí:
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
Los dos servidores realizan la misma operación de copia del archivo de configuración.
2. Configure el servidor maestro.
Necesitamos configurar 192.168.0.1 como el servidor MySQL principal (maestro). Luego debemos considerar qué base de datos necesitamos sincronizar y qué usuario usar para la sincronización. el usuario root para la sincronización aquí, y solo es necesario sincronizar la base de datos abc.
Abra el archivo de configuración:
vi /usr/local/MySQL/var/my.cnf
Encuentra esta información:
# ID única requerida entre 1 y 2^32 - 1# por defecto es 1 si master-host no está configurado# pero no funcionará como maestro si omittedserver-id = 1 //1 es maestro, 2 es salva
Añade dos líneas:
sql-bin-update-same //Formulario de sincronización binlog-do-db = abc //Base de datos a sincronizar
Reinicie el servidor MySQL en 192.168.0.1:
/usr/local/MySQL/bin/MySQLadmin apagado /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. Configure el servidor esclavo.
Nuestro servidor esclavo toma principalmente la iniciativa de sincronizar los datos con el servidor maestro. Editamos el archivo de configuración:
vi /usr/local/MySQL/var/my.cnf
Encuentre información similar a continuación:
# ID única requerida entre 1 y 2^32 - 1# por defecto es 1 si el host maestro no está configurado# pero no funcionará como maestro si omittedserver-id = 1
Cambie el ID del servidor anterior a 2 y agregue información:
server-id = 2 //Este MySQL es un servidor esclavo master-host = 192.168.0.1 //La IP del servidor maestro master-user = root //El usuario que se conecta al servidor maestro master-password = '' / /La contraseña para conectarse al servidor maestro master -port = 3306 //Puerto de conexión master-connect-retry = 10 //Número de reintentos replicate-do-db = abc //Base de datos que se sincronizará log-slave-updates // Formulario de sincronización
Reinicie el servidor MySQL en 192.168.0.2:
/usr/local/MySQL/bin/MySQLadmin apagado /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. Para probar la instalación,
primero verifique el registro del host del esclavo:
cat /usr/local/MySQL/var/xxxxx_err (xxx es el nombre del host)
Compruebe si la conexión es normal. Si ve un mensaje como este, ha tenido éxito.
051031 11:42:40 MySQLd iniciado 051031 11:42:41 InnoDB: iniciado; número de secuencia de registro 0 43634/usr/local/MySQL/libexec/MySQLd: listo para conexiones. Versión: '4.1.15-log' socket: '/ Puerto tmp/MySQL.sock: 3306 Distribución de origen 051031 11:42:41 [Nota] Hilo SQL esclavo inicializado, iniciando la replicación en el registro 'PRIMERO' en la posición 0, registro de retransmisión './new4-relay-bin.000001' posición: 4051031 11:43:21 [Nota] Subproceso de E/S esclavo: conectado al maestro '[email protected]:3306' , la replicación comenzó en el registro 'PRIMERO' en la posición 4
Ver información sobre Maestro
/usr/local/MySQL/bin/MySQL -u raíz
Ver estado maestro:
MySQL> mostrar estado maestro;
Verifique la información del proceso MySQL en Maestro:
MySQL> mostrar lista de procesos;
Ver información sobre esclavo:
/usr/local/MySQL/bin/MySQL -u raíz
Ver estado de esclavo:
MySQL> mostrar estado de esclavo;
Verifique la información del proceso MySQL en esclavo:
MySQL> mostrar lista de procesos;
Luego puede crear una estructura de tabla en la biblioteca abc del maestro e insertar datos, y luego verificar si el esclavo ha sincronizado los datos y puede verificar si la configuración se realizó correctamente.
Finalmente, si está interesado, puede estudiar la copia de seguridad en caliente con doble clic o la implementación de sincronización de un maestro y varios esclavos.