mysql主从复制+主备切换

时间:2022-09-21 12:37:29


mysql主从复制+主备切换

简介

使用mycat进行主从切换,当一台mysql服务器宕机之后,mycat会切换至另一台进行连接,两台mysql互为主从,这样可以使两台mysql服务器互相备份,使其数据一致。

 

1.   服务器分配

Mycat  192.168.1.100:8066

Mysql1 192.168.1.101:3306

Mysql2 192.168.1.102:3306

 

2.   安装所需的程序

系统版本CentOS-7-1611

1.      Jdk1.7

2.      Mycat1.4

3.      Mysql5.7

3.   Mycat服务器安装配置

a.    安装jdk,配置jdk环境变量

      略。

b.    安装mycat

      1. tar –xzvf myscatTar包,解压完成后复制到 /usr/mycat路径

      2. 配置环境变量,vi /etc/profile,增加以下

export MYCAT_HOME=/usr/mycat

export PATH=$PATH:$MYCAT_HOME/bin

生效环境配置文件source /etc/profile

c.     修改配置文件

1.       修改server.xml,路径/usr/mycat/conf

设置登录名密码,逻辑表名称

    <user name="root">

              <propertyname="password">123456</property>

      <!—逻辑表名称,mycat的表名à

              <propertyname="schemas">developdatabase</property>

    </user>

2.       配置schema.xml,路径/usr/mycat/conf

      mysql主从复制+主备切换

d.    修改防火墙,允许mycat的端口被外界访问

   firewall-cmd --zone=public --add-port=8066/tcp–permanent

   firewall-cmd –reload

4. mysql服务器安装配置

   Mysql安装略

a.    修改mysql配置文件my.conf(两台mysql服务器都需要修改)

server_id=1

log-bin=mysql-bin

relay_log=mysql-relay-bin

 

增加上面配置,两台mysql服务器的server_id不能重复

b.    Mysql  master配置(主服务配置)

登录192.168.1.101mysql服务器

连接mysql:mysql –uroot –p

 

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@’192.168.1.102’ IDENTIFIED BY ‘123456’;

FLUSH PRIVILEGES;  生效创建的用户

建立一个帐户backup,并且只能允许从192.168.1.102这个地址上来登陆,密码是123456。

 

重启master,运行SHOWMASTER STATUS;,输出如下:

mysql主从复制+主备切换

c.     Mysql  slave配置(从服务配置)

     登录192.168.1.102mysql服务器

     连接mysql:mysql –uroot –p

 

     mysql> CHANGE MASTER TO MASTER_HOST='mastrt服务器地址',

    -> MASTER_USER='master服务器用户,使用刚才创建的backup',

    ->MASTER_PASSWORD='密码',

    -> MASTER_LOG_FILE='mastershow master statusfile,实际填写mysql-bin.000009',

-> MASTER_LOG_POS=0;   mastershow master statusPosition

使用SHOW SLAVE STATUS\G语句查看slave的设置是否正确

mysql主从复制+主备切换

 

这样slave 在这里主要是看:

                   Slave_IO_Running=Yes

                   Slave_SQL_Running=Yes

slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。就连接上master了。

master上输入showprocesslist\G

mysql主从复制+主备切换

3. row 就是slave的连接

因为我们的配置是互为主从,只需要把以上的操作,两台服务器反过来再进行操作一遍就好了。

 

客户端连接的时候只需要连接192.168.1.100:8066