Home > Database > Mysql Tutorial > mysql主主、主从_MySQL

mysql主主、主从_MySQL

WBOY
Release: 2016-06-01 13:44:59
Original
995 people have browsed it

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
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template