mysql主备模型,Mysql 5.6.27 双主模型&&主备模型安装测试

http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.27-1.el6.x86_64.rpm-bundle.tar

测试环境:

两台服务器

MYSQL-1:10.11.22.78

MYSQL-2:10.11.22.248

测试系统

Centos 6.5_64

Mysql版本

MySQL-5.6.27

Keepalived版本

keepalived-1.2.13

1、安装Mysql5.6.27,两台服务器执行以下同样操作

1.1、检查系统是否安装Mysql,如有安装其他的版本卸载之

[[email protected] ~]# rpm -qa|grep mysql*

mysql-libs-5.1.71-1.el6.x86_64

[[email protected] ~]# yum -y remove mysql-libs-*

1.2、安装Mysql所依赖的组件

[[email protected] ~]# yum -y install perl libaio libnuma*

1.3、解压Mysql软件包并安装

[[email protected] ~]# tar xf MySQL-5.6.27-1.el6.x86_64.rpm-bundle.tar

[[email protected] ~]# rpm -ivh MySQL-client-5.6.27-1.el6.x86_64.rpm

[[email protected] ~]# rpm -ivh MySQL-server-5.6.27-1.el6.x86_64.rpm

1.4、初始化数据并测试启动后关闭服务

[[email protected] ~]# /usr/bin/mysql_install_db

[[email protected] ~]# service mysql start

Starting MySQL. SUCCESS!

[[email protected] ~]# service mysql stop

Shutting down MySQL.. SUCCESS!

1.5、移动Mysql到/data/mysql

[[email protected] ~]# mkdir /data

[[email protected] ~]# mv /var/lib/mysql /data/

1.6、修改Mysql配置文件,添加如下内容,

[[email protected] ~]# vi /usr/my.cnf

[mysqld]

datadir=/data/mysql

socket=/data/mysql/mysql.sock      #在配置文件中添加两行

[[email protected] ~]# service mysql start

Starting MySQL. SUCCESS!

1.7、创建链接文件,不然登录数据库会 错:

[[email protected] ~]# mkdir /var/lib/mysql

[[email protected] ~]# ln -s /data/mysql/mysql.sock  /var/lib/mysql/mysql.sock

1.8、查看数据库root用户的临时密码

[[email protected] ~]# cat /root/.mysql_secret

# The random password set for the root user at Thu Apr 21 13:06:24 2016 (local time): xJYL3JTDc0uYZipg

1.9、使用临时密码登录数据库,并修改密码为root

[[email protected] ~]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 1

Server version: 5.6.27

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.

mysql>

mysql> set password =password(‘root‘);

Query OK, 0 rows affected (0.00 sec)

1.10、添加开机启动

[[email protected] ~]# chkconfig mysql on

2、配置Mysql服务

2.1、在mysql-1服务器10.11.22.78上操作如下

[[email protected] ~]# mysql -uroot -p

mysql> CREATE USER [email protected]%‘;

mysql> GRANT REPLICATION SLAVE ON *.* TO [email protected]%‘ IDENTIFIED BY ‘123‘;

[[email protected] ~]# vi /usr/my.cnf

server-id = 1

log-bin = mysql-bin

auto-increment-increment= 2

auto-increment-offset = 1

[[email protected] ~]# mysql -uroot -p

mysql>  CHANGE MASTER TO

-> MASTER_HOST=‘10.11.22.248‘,

-> MASTER_USER=‘test‘,

-> MASTER_PASSWORD=‘123‘;

Query OK, 0 rows affected, 2 warnings (0.05 sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.02 sec)

mysql> show slave status G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.11.22.248

Master_User: test34

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 120

Relay_Log_File: MYSQL-1-relay-bin.000002

Relay_Log_Pos: 283

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 120

Relay_Log_Space: 458

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 2

Master_UUID: 29bd0cab-077f-11e6-83be-000c29933162

Master_Info_File: /data/mysql/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O

thread     to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

1 row in set (0.00 sec)

2.2、在mysql-2服务器10.11.22.248上操作如下

[[email protected] ~]# mysql -uroot -p

mysql> CREATE USER [email protected];

mysql> GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY

‘123‘;

[[email protected] ~]# vi /usr/my.cnf

server-id = 2

log-bin = mysql-bin            #开启日志功能

auto-increment-increment= 2

auto-increment-offset = 1

[[email protected] ~]# mysql -uroot -p

mysql> CHANGE MASTER TO

-> MASTER_HOST=‘10.11.22.78‘,

-> MASTER_USER=‘test‘,

-> MASTER_PASSWORD=‘123‘;

Query OK, 0 rows affected, 2 warnings (0.10 sec)

mysql>  START SLAVE;

Query OK, 0 rows affected (0.01 sec)

mysql>  START SLAVE;

Query OK, 0 rows affected (0.01 sec)

mysql> show slave status G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.11.22.78

Master_User: test

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 120

Relay_Log_File: MYSQL-2-relay-bin.000002

Relay_Log_Pos: 283

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 120

Relay_Log_Space: 458

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

Master_UUID: f3a1ded7-079d-11e6-8487-000c29fb08f7

Master_Info_File: /data/mysql/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O

thread to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

1 row in set (0.00 sec)

2.3、测试同步

2.3.1、在MYSQL-1服务器10.11.22.78上创建一个数据库:MYSZHANG

mysql> CREATE DATABASE MYSZHANG;

Query OK, 1 row affected (0.00 sec)

2.3.2、在MYSQL-2服务器10.11.22.248上查看同步情况

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| MYSZHANG           |

| mysql              |

| performance_schema |

| test               |

+——————–+

5 rows in set (0.02 sec)

2.4、测试数据库同步成功

3、安装keepalived-1.2.13

3.1、下载Keepalived安装包

http://rpmfind.net/linux/rpm2html/search.phpuery=keepalived(x86-64)

3.2、安装Keepalived,用yum –nogpgcheck localinstall 在本地解决依赖关系

[[email protected] ~]# yum -y –nogpgcheck localinstall keepalived-1.2.13-5.el6_6.x86_64.rpm

3.3、双节点配置Keepalived

[[email protected] ~]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.11.22.55/24 dev eth0 label eth0:0

}

}

3.4、测试方法如上

3.5、主备节点配置,备节点只需将 state MASTER改为state BACKUP,优先级priority 100调低

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER            #主节点,备节点调整为BACKUP

interface eth0

virtual_router_id 51

priority 100            #备节点优先级调低于主节点即可

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.11.22.55/24 dev eth0 label eth0:0

}

}

virtual_server 10.11.22.55 3306 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

#persistence_timeout 50

protocol TCP

real_server 10.11.22.78 3306 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 10.11.22.248 3306 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

}

3.6、测试方法如上,不论主主还是主备测试成功。主备模式down掉运行的主节点数据库服务器,备节点会接管主节

点继续运行。

原文:http://leamonzhang.blog.51cto.com/11334931/1766343

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树安装和登录安装31345 人正在系统学习中 相关资源:KK录像机-瓜

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月21日
下一篇 2021年2月21日

相关推荐