视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql主主、主从_MySQL
2020-11-09 18:10:12 责编:小采
文档


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 < /tmp/luowei.sql
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

下载本文
显示全文
专题