CentOS6.5配置MYSQL一主多从详解

Posted hunttown

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS6.5配置MYSQL一主多从详解相关的知识,希望对你有一定的参考价值。

一、环境

1 操作系统 :CentOS 6.5
2 数据库版本:mysql 5.6.27
3 主机A:192.168.1.1 (Master)
4 从机B:192.168.1.2 (Slave)
5 从机B:192.168.1.3 (Slave)

 

二、基本环境配置

MYSQL是通过3306端口访问的,所以要保证防火墙对3306端口的开启。

 

三、Master的配置

1、配置my.cnf

在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:

[[email protected] ~]# vim /etc/my.cnf

server-id               = 1       # 一般用IP的最后一段,这个标识是唯一的
log-bin                 = mysql-bin
binlog-ignore-db        = test    # 排除不同步的库
binlog-ignore-db        = mysql
binlog-ignore-db        = performance_schema
binlog-ignore-db        = information_schema
binlog-do-db            = vertical_analysis    # 选择要同步的库
binlog_format           = mixed
expire_logs_days        = 7
relay-log               = relay-log
log_slave_updates
skip-slave-start

 

说明:

binlog-ignore-db:表示同步的时候ignore的数据库

binlog-do-db:指定需要同步的数据库

 

2、重启mysql

[[email protected] ~]# service mysqld restart

 

3、进入mysql

[[email protected] ~]# mysql -u root -p

 

4、 赋予从库权限帐号

允许用户在主库上读取日志,赋予192.168.1.2/3也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

在Master数据库命令行中输入:

mysql> GRANT FILE ON *.* TO slaver@% IDENTIFIED BY 123456;
mysql> GRANT REPLICATION SLAVE ON *.* TO slaver@% IDENTIFIED BY 123456;
mysql> FLUSH PRIVILEGES

这里slaver 用户作为同步的时候使用到的用户,可以自己设定。

 

5、检测授权结果 

mysql> select * from user where host=% and user=tantulsG; 

# 如果Repl_slave_priv项为Y,表示授权成功。

 

6、查看主数据库master状态

mysql> show master status;

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

| File             | Position | Binlog_Do_DB          | Binlog_Ignore_DB                                  | Executed_Gtid_Set |

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

| mysql-bin.000004 |    28125 | vertical_analysis     | performance_schema ,information_schema,test,mysql |                   |

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

1 row in set (0.00 sec)

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

 

四、Slave的配置

1、配置my.cnf

[[email protected] ~]# vim /etc/my.cnf

server-id               = 2            # 一般用IP的最后一段,这个标识是唯一的
log-bin                 = mysql-bin
binlog_format           = mixed
expire_logs_days        = 7
relay-log               = relay-log    # 注意:不同的slave这里也是唯一的
binlog-ignore-db        = information_schema
binlog-ignore-db        = performance_schema
binlog-ignore-db        = mysql
binlog-ignore-db        = test
replicate-do-db         = vertical_analysis
replicate-ignore-db     = mysql
log_slave_updates
skip-slave-start
slave-skip-errors       = all
slave-net-timeout       = 60

 

2、配置Slave同步信息

mysql> stop slave;

mysql> change master to
  master_host=192.168.1.1,
  master_port=3306,
  master_user=slaver,
  master_password=123456,
  master_log_file=mysql-bin.000004,
  master_log_pos=28125;

mysql> start slave;

 

3、检测从数据库复制功能状态

mysql> show master statusG;

# 其中下面两项都必须为yes。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

五、验证

在主库上建一张表,看下从库是否同步过来。

 

附:

错误1:Slave failed to initialize relay log info structure from the repository

解决方法:使用reset slave all清空所有的复制信息,然后重置master.infor、start slave后复制正常。

 

以上是关于CentOS6.5配置MYSQL一主多从详解的主要内容,如果未能解决你的问题,请参考以下文章

Mysql一主多从和读写分离配置简记

Mysql一主多从和读写分离配置简记

Mysql一主多从和读写分离配置

MySQL一主多从

Mysql一主多从和读写分离配置简记

搭建MySQL一主多从————VMware Workstation 虚拟机nat网络配置