Maison > base de données > tutoriel mysql > mysql主主、主从_MySQL

mysql主主、主从_MySQL

WBOY
Libérer: 2016-06-01 13:44:59
original
993 Les gens l'ont consulté

bitsCN.com

建立mysql 主主
  server1_mysql:192.168.1.108
  server2_mysql: 192.168.1.110
  拓扑结构:
  server1_mysql-------server2_mysql
  1.创建用户并授权
  server1:
  mysql> GRANT REPLICATION SLAVE ON *.* TO 'server2'@'192.168.1.110'
  IDENTIFIED BY 'server2';
  mysql> flush privileges;
  server2:
  mysql> GRANT REPLICATION SLAVE ON *.* TO 'server1'@'192.168.1.108'
  IDENTIFIED BY 'server1';
  2.修改Mysql的主配置文件/etc/my.cnf
 
  server1:
log-bin=mysql-bin #必须要开启二进制日志
server-id = 1  #另外一台id改成2
binlog-do-db=test  #填写需要同步的数据库
binlog-ignore-db=mysql  #填写不需要同步的数据库
replicate-do-db=test #填写需要同步的数据库
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=1 #每次增长2
auto_increment_offset=1 #设置自动增长的字段的偏移量,即初始值为2
 
启动Mysql服务:
  # service mysqld restart
  server2:
log-bin=mysql-bin #必须要开启二进制日志
server-id = 2
binlog-do-db=test  #填写需要同步的数据库
binlog-ignore-db=mysql  #填写不需要同步的数据库
replicate-do-db=test #填写需要同步的数据库
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2 #每次增长2
auto_increment_offset=1 #设置自动增长的字段的偏移量,即初始值为2
  启动Mysql服务:
  # service mysqld restart
  注:二都只有server-id不同和 auto-increment- offset不同
  auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两
  台服务器,所以值设为2。
  3.重新启动两个服务器
  # service mysqld restart
  4.为了让两个数据库一样,我们备份其中一个数据库,然后在另一个数据库上恢
  复,这样是两个数据库一开始都是一样的。
  在server1上操作:
  # mysqldump --databases luowei > /tmp/luowei.sql
  在server2上操作:
  创建一个与mydb同名的空数据库
  # mysql
  > CREATE DATABASE mydb;
  >/q
  # scp 192.168.1.108:/tmp/mydb.sql ?./
  # mysql -uroot -p mydb   5.然后两个服务器相互通告二进制日志的位置并启动复制功能:
  在server1上:
  # mysql
  > CHANGE MASTER TO
  > MASTER_HOST='192.168.1.110',
  > MASTER_USER='server2',
  > MASTER_PASSWORD='server2';
  mysql > START SLAVE;
  在server2上:
  # mysql
  > CHANGE MASTER TO
  > MASTER_HOST='192.168.1.108',
  > MASTER_USER='server1',
  > MASTER_PASSWORD='server1';
  mysql > START SLAVE;
  6.查看,并验证:
  分别在两个数据库服务器上查看
  mysql > START SLAVE;
  然后查看数据库和表,你会发现内容是一样的,这样就是整个主主Mysql的架构
  的配置过程。
 
 
检查主从同步性
 
  [root@node1 ~]# mysql #进入mysql命令行
 
  mysql> show master status; #显示 ( 不同主机结果不同 )
 
  +------------------+----------+-------------------+------------------+
 
  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
 
  +------------------+----------+-------------------+------------------+
 
  | updatelog.000028 | 313361 |db1 | mysql |
 
  +------------------+----------+-------------------+------------------+
 
  (同步之前如果怀疑主从数据不同步可以采取:上面冷备份远程拷贝法或者在从服务器上命行同步方法)
 
  在从服务器执行MySQL命令下:
 
  mysql> slave stop; #先停止 slave 服务
 
  mysql> CHANGE MASTER TO MASTER_LOG_FILE='updatelog.000028',MASTER_LOG_POS=313361;
 
  #根据上面主服务器的 show master status 的结果,进行从服务器的二进制数据库记录回归,达到同步的效果
 
  mysql>slave start; #启动从服务器同步服务
 
  mysql> show slave status/G;
 
  用show slave status/G;看一下从服务器的同步情况
 
  Slave_IO_Running: Yes
 
  Slave_SQL_Running: Yes
 
  如果都是yes,那代表已经在同步
 
  利用 mysql 的客户端来测试,要比在命令行方便的多。
作者“郭炜君工作学习记录”

bitsCN.com
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal