Heim  >  Artikel  >  Datenbank  >  MySQL主主双机负载均衡

MySQL主主双机负载均衡

WBOY
WBOYOriginal
2016-06-07 16:43:01993Durchsuche

MySQL双机主主架构,其上辅以负载均衡设备,可以实现mysql数据库的负载均衡高性能和高可用性,负载均衡设备可以根据算法将数据库

MySQL双机主主架构,其上辅以负载均衡设备,可以实现mysql数据库的负载均衡高性能和高可用性,负载均衡设备可以根据算法将数据库操作的负载平均分到两台MySQL服务器上,这样对于每台服务器来说工作量减半,有效地提高整体处理性能,在每台MySQL数据库服务器上安装一套MySQL程序,数据库物理文件均在本机硬盘中,通过MySQL主主集群架构,即时同步数据,并且互为备份,这样如果其中一台MySQL数据库宕机,另外一台可以暂时承担起全部负载,并且可以根据存活主机的数据库即时完整恢复宕机服务器的数据库,以达到高可用性的目的。

MySQL Proxy快速实现读写分离以及负载均衡 

搭建MySQL负载均衡及高可用环境

MySQL LVS负载均衡 

Ubuntu下LVS + Keepalived 实现MySQL高可用负载均衡实现 

配置MySQL服务器实现主主复制

MySQL主主复制+Keepalived 打造高可用MySQL集群

具体实施步骤:

一、创建并授权用户

这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库

在Server-1(192.168.10.91)上:

创建一个允许Server-2来访问的用户server2,密码为:server2

mysql> grant replication slave on *.* to'server2'@'192.168.10.92' identified by 'server2';   

mysql> flush privileges;

 

在Server-2(192.168.10.92)上:

创建一个允许Server-1来访问的用户server1,密码为:server1

mysql> grant replication slave on *.* to 'server1'@'192.168.10.91'identified by 'server1';

mysql> flush privileges;

二、修改MySQL主配置文件

在MySQL的主配置文件中修改/添加如下内容:

Server-1上:

 [mysqld]

 server-id = 91                                  #ID最好为ip尾数

 log-bin = mysql-bin                            #路径可以设置,注意新建路径属主属组为mysql

 replicate-do-db = mydb                          #要同步的db,也可不写默认为全库

 auto-increment-increment = 2                    #整个结构中服务器的总数

 auto-increment-offset = 1

# service mysqld restart

 

Server-2上:

 [mysqld]

 server-id = 92

 log-bin = mysql-bin

 replicate-do-db = mydb

 auto-increment-increment = 2

 auto-increment-offset = 2

# service mysqld restart

 

注:二都只有server-id不同和auto-increment- offset不同

    auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突

    replicate-do-db 指定同步的数据库,,我们只在两台服务器间同步mydb数据库

另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

三、查看两台服务器的二进制日志的位置

# mysql

    > SHOW MASTER STATUS;

+-----------------+------------+----------------+--------------------+

|File            | Position  | Binlog_Do_DB  |  Binlog_Ignore_DB  | 

+-----------------+------------+----------------+--------------------+

|mysql-bin.000001 |      106  |              |                  |

+-----------------+------------+----------------+--------------------+

1 row in set (0.00 sec)

    > UNLOCK TABLES;

    > \q

四、互相通告二进制日志位置

在Server-1上:

# mysql

  > CHANGE MASTER TO

  > MASTER_HOST='192.168.10.92',

  > MASTER_USER='server1',

  > MASTER_PASSWORD='server1',

  > MASTER_LOG_FILE='mysql-bin.000001',                            #server2的bin文件

  > MASTER_LOG_POS=106;                                            #server2的bin位置

change masterto master_host='192.168.10.92',master_user='server1',master_password='server1',master_log_file='mysql-bin.000001',master_log_pos=106;

 

在Server-2上:

# mysql

  > CHANGE MASTER TO

  > MASTER_HOST='192.168.10.91',

  > MASTER_USER='server2',

  > MASTER_PASSWORD='server2',

  > MASTER_LOG_FILE='mysql-bin.000001',

  > MASTER_LOG_POS=106;

change masterto master_host='192.168.10.91',master_user='server2',master_password='server2',master_log_file='mysql-bin.000001',master_log_pos=106;

五、启动复制(Replication)功能

在两台主机上分别执行

# mysql

  > START SLAVE;

配置到此完成!

查看配置

showslave status\G;

本文永久更新链接地址:

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn