当前位置:首页 > CN2资讯 > 正文内容

主从同步、代理

2天前CN2资讯

一、 mysql主从同步(mysql AB复制)

1.1. 目的实现数据的自动备份

1.2. Mysql主从同步的结构

一主一从

一主多从

主从从

主主结构(互为主从)

配置一主一从:

公共配置:

1、 配置固定ip

2、 启动数据库服务

3、 关闭iptables  selinux

4、 物理连接没问题

     主从的UUID不能相同(/var/lib/mysql/auto.cnf)

    *从数据库服务器上一定要有数据库服务器上的库和表,且表结构也要一致2.1 配置主数据库服务器

1、 主配置文件

Vim /etc/my.cnf (配置文件的模板//usr/share/mysql/my-default.cnf)

[mysqld]

Log_bin

Server_id=253(不能重复,此处为ip的主机位)

2、 在数据库服务器中授权

grant   replication  slave  on  *.*  to  slaveuser@“客户端ip”

identified  by“密码”;

service   mysql  restart    //重启服务

3、 在从服务器上登录

[root@localhost ~]# mysql –h主服务ip-uslaveuser –p密码

3.1配置从数据库服务器

1、 service  mysql  start

2、 修改自己的配置文件

Vim  /etc/my.cnf

[mysqld]

Server_id=252

Service  mysql  restart

3、 用本机的数据库服务器管理员登录,指定自己做谁的从数据库服务器。

Mysql  -hlocalhost   -uroot   -ptarena

Change  master  to  master_host=”ip主”, //连接的主服务器

Master_user=”slaveuser”,               //从连接时的用户名

Master_password=”tarena”             //从连接密码

Master_log_file= “localhost-bin.000001”  //当前用的日志

Master_log_pos=120;//从主服务器上查看。show master status;

库服务器的状态·

Mysql> show slave status\G;   //查看从数据库服务器的状态

Slave_IO_Running : yes

Slave_SQL_Running : yes

如果是no则

Start slave;     //启动从服务

与从服务器相关的文件

Ls   /var/lib/mysql/

Master_info            //保存自己连接的主数据库服务器的信息

Localhost-relay-bin.000001     //relaybinlog日志

Localhost-relay-bin.index  //保存已有的relaybinlog日志文件名

     //relaybinlog日志信息

4、 验证从数据库服务器是否能同步主数据库服务器上的数据

192.168.10.253:(主服务器端)

mysql -uroot –ptarena     //登录数据库

mysql> create  database  test100;    //创建库

mysql> use  test100;            //切换库

mysql>create table  a (id int);    //创建表

            insert into  a values(100);  //插入值

            insert into  a values(200);

            insert into  a values(300);

192.168.10.252:(从服务器端)

mysql -uroot –ptarena

select  *  from  test100.a;   能够看到 a表的3条记录 就  ok  了。

(1) Mysql主从同步的工作过程

Show   slave  status\G

Slave_IO_Running : yes

Slave_SQL_Running : yes

(2) 2个IO SQL 要同时处于YES状态 数据才可以同步成长

IO 连接主数据服务器,把主数据服务器binlog日志里内容,copy到本机的relaybinlog日志里

IO 进程出错:连接不上主数据服务器(物理线路、安全问题、授权用户),当前binlog日志名pos点和master上的不一致

(3) SQL执行本机relaybinlog日志里的SQL语句,把数据写表里。

SQL进程出错:从数据服务器本机没有主数据服务器上的库和表,

5、 常用的其他选项

ü 适用于master服务器

Binlog-do-db=name:设置master对哪些库记日志

Binlog-ignore-db=name:设置master对哪些库不记日志

ü 适用于slave服务器

Log-slave-updates:记录从库更新,允许链式(主从从结构)复制(A-B-C)

Relay-log=dbsvr2-relay-bin:指定中继日志文件名

Replicate-do-db=mysql:仅复制指定库,其他库将被忽略,此选项可设置多条(省略时复制所有库)

Replicate-ignore-db=test:不复制哪些库,其他库将忽略,ignore-db与do-db只需选择一种

Report-host=dbsvr2:报告给master的主机名或ip地址

Slave-net-timeout=60:出现网络中断时,重试超时(默认60秒)





二、 搭建MySQL代理服务器(mysql读写分离)

1、 案例拓扑:

代理服务启动时会设置负责写的数据库,负责读数据库服务器

               调用脚本来区分用户的访问类型

                指定自己监听的端口

在后端的数据库服务器上配置。

(1)授权代理(主从à代理)

Grant  all   on  *.*  to proxyuser@”%”

identified by “123456”

(2)在主、从服务器上创建库、表(为了在测试时效果明显,主从的表中插入不同的数据)

主:mysql> create database prodb;

mysql> create table a(

   -> id int(3)

   -> );

mysql> insert into a values (100);

从:mysql> create database prodb;

   mysql> create table a(

   -> id int(3)

   -> );

  mysql> insert into a values (300);

在代理测试:

登录主:

[root@localhost ~]# mysql -h192.168.10.253 -uprouser -p123456

登录从:

[root@localhost ~]# mysql -h192.168.10.252 -uprouser -p123456


2、 配置代理服务

先配置代理服务器,再配置主从。

(1)主服务器释放3306端口 :service  mysqld   stop

                           Chkconfig  mysqld  off

(2)安装软件包

[root@localhost~]#tar zxf                //解压软件包

mysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz–C /usr/local

[root@localhostlocal]#mv                  //改名字

mysql-proxy-0.8.3-linux-rhel5-x86-64bit/  mypro

[root@localhost ~]# cd /usr/local/mypro/

[root@localhost mypro]# ls

bin (启动脚本) include lib libexec(可执行程序) licenses  share

[root@localhostmypro]# chmod +x

share/doc/mysql-proxy/rw-splitting.lua

3、 启动mysql-proxy

主要命令选项:

-P:指定代理监听的ip地址、端口

-r:指定读服务器的ip地址、端口

-b:指定写服务器的ip地址、端口

-s:指定lua监本文件的路径

--keepalive:若进程崩溃,自动启动此进程

[root@localhost ~]# cd /usr/local/ mypro/bin

[root@localhost bin]# ./mysql-proxy -P 192.168.10.251:3306 -r 192.168.10.252:3306 -b 192.168.10.253:3306 -s /usr/local/mypro/share/doc/mysql-proxy/rw-splitting.lua &

[root@localhost bin]# netstat -untpal | grep :3306

tcp        0      0 192.168.10.251:3306         0.0.0.0:*                   LISTEN      4344/mysql-proxy

4、 测试

客户端通过代理访问数据库服务器上的数据。

[root@localhost bin]# mysql -h192.168.10.251 -uprouser -p123456            //在本机登录(本机ip)

(1) 并发连接数达到多少时区分用户的读写操作?大于5时

(2) 没有超过并发连接数时如何分发用户的读写操作?

读写操作都由写的服务器负责

(3) 当并发连接数,减小到默认的最大并发连接数之后,是否还区分用户的读写操作?  区分读写操作



    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24293.html

    分享给朋友:

    “主从同步、代理” 的相关文章

    如何轻松修改99元服务器地域,提升网站性能与稳定性

    如何轻松修改99元服务器地域,提升网站性能与稳定性

    阿里云近期推出的99元服务器确实让人眼前一亮。这款ECS经济型e实例配置为2核2G、3M固定带宽、40G系统盘,性价比极高。对于中小型网站建设、开发测试以及轻量级应用场景来说,这台服务器完全能够胜任。它的性能参数ecs.e-c1m1.large也让人感到放心,尤其是在网络带宽、多队列和云盘IOPS方...

    最便宜的域名注册平台推荐与选择技巧

    在创建一个新网站时,域名是一个不可或缺的部分。众所周知,一个好的域名能够提升品牌形象,也让用户更容易记住。选择便宜的域名注册平台,可以让我们在网站建设的开销上更加省钱。这里有几个我认为特别值得关注的平台,可能会对你有帮助。 1.1 NameCheap的优势与价格分析 让我先谈谈NameCheap。说...

    腾讯云轻量云:简单易用的云服务器解决方案

    当我回顾腾讯云轻量应用服务器(简称轻量云)时,我觉得它真的是一款设计出色的产品。作为腾讯云推出的一项云服务,轻量云专注于轻量应用场景,强调的是“开箱即用”和“简单易用”。无论是初学者还是开发者,都能轻松上手,快速构建所需的网站或应用。 轻量云的规格多样,具有多种CPU和内存的组合选项,如2核2GB和...

    泰国VPS市场分析:高效、可靠的云服务器选择

    泰国VPS市场概述 近年来,泰国的VPS市场迎来了快速的发展。作为东南亚的一个重要互联网和商业枢纽,泰国吸引了越来越多的国内外服务商。这一切的变化让我感受到了市场的活力,尤其是在曼谷,一个充满竞争和机会的城市。在这片土地上,VPS服务逐渐成为了企业和个人用户实现数字化转型的重要工具。 在研究泰国VP...

    揭秘 cheapnat 优惠码的省钱技巧与使用攻略

    什么是 cheapnat 优惠码 我最近发现,cheapnat 优惠码成为了网络用户省钱的绝佳利器。它们通常是特定服务或产品的折扣代码,可以帮助用户在购买 VPS、域名注册或代理服务时享受不同程度的价格优惠。无论你是个人用户还是小型企业,合理利用这些优惠码都能帮你减少开支,同时享受到高质量的服务。...

    2023年美国服务器市场分析与未来展望

    在美国,服务器市场一直以来都具有举足轻重的地位。到了2023年,这个市场依旧保持着强劲的增长势头。根据IDC的分析报告,2023年第一季度,美国的服务器市场规模达到了2212亿美元,相比去年增长了2%。这不仅显示了市场的健康发展,也奠定了美国在全球服务器市场的领导地位,全球市场份额约为30%。 随着...