小言_互联网的博客

MySql数据库主从配置详细教程

646人阅读  评论(0)

MySql数据库主从配置详细教程


本文将讲解mysql数据库的主从配置方法。mysql数据库进行主从配置后,可以实现数据库的备份、同时应用也可以实现读写分离,提高应用的并发量。

 

1、主从原理

主从原理大致有三个步骤:

  • 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
  • 从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
  • 从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。

原理图为:

 

2、主从配置

演示的环境如下:

名称 IP
msyql-master(主库) 192.168.197.135
mysql-slave(从库) 192.168.197.136

(1)、配置主库

修改my.cnf文件,在[mysqld]加入下面的内容:


  
  1. # 服务的唯一编号
  2. server-id = 1
  3. # 开启mysql binlog功能
  4. log-bin = mysql-bin
  5. # binlog记录内容的方式,记录被操作的每一行
  6. binlog_format = ROW
  7. # 减少记录日志的内容,只记录受影响的列
  8. binlog_row_image = minimal
  9. # 指定需要复制的数据库名为jgyw
  10. binlog-do-db = jgyw

修改好配置文件,重启mysql服务

service mysqld restart

创建从库同步数据的账号


  
  1. grant replication slave on *.* to 'jgyw'@ '192.168.197.136' identified by 'jgyw@123';
  2. flush privileges;

注意:上面这两个命令是在mysql的终端执行的。

查看主库的状态:

mysql的终端执行:

show master status\G;

返回的信息为:


  
  1. **** **** **** **** **** **** *** 1. row ***************************
  2. File: mysql-bin.000002
  3. Position: 2380
  4. Binlog_Do_DB: jgyw
  5. Binlog_Ignore_DB:
  6. Executed_Gtid_Set:
  7. 1 row in set (0.00 sec)

(2)、配置从库

修改my.cnf文件,在[mysqld]加入下面的内容:


  
  1. # 服务的唯一编号
  2. server-id = 2
  3. # 开启mysql binlog功能
  4. log-bin = mysql-bin
  5. # binlog记录内容的方式,记录被操作的每一行
  6. binlog_format = ROW
  7. # 减少记录日志的内容,只记录受影响的列
  8. binlog_row_image = minimal
  9. # 指定需要复制的数据库名为jgyw
  10. replicate-do-db = jgyw

修改好配置文件,重启mysql服务

service mysqld restart

执行同步命令

mysql的终端执行:


  
  1. # 设置主服务器ip,同步账号密码,同步位置
  2. change master to master_host= '192.168.197.135',master_user= 'jgyw',master_password= 'jgyw@123',master_log_file= 'mysql-bin.000002',master_log_pos= 2380;
  3. # 开启同步功能
  4. start slave;

查看从库的状态

mysql的终端执行:

show slave status\G;

返回信息为:

注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。

 

3、测试

(1)、在主库上创建jgyw模式,即:

create schema jgyw;

(2)、在主库上的jgyw模式里面创建comm_config表,即:


  
  1. use jgyw;
  2. CREATE TABLE comm_config (configId varchar( 200) NOT NULL ,configValue varchar( 1024) DEFAULT NULL ,description varchar( 2000) DEFAULT NULL ,PRIMARY KEY (configId)) ENGINE= InnoDB DEFAULT CHARSET=utf8 ;

(3)、在主库上往comm_config表中插入一条记录,即:

insert into comm_config(configId, configValue, description) values('name', '架构与我', '测试一下');

(4)、在从库上查看模式,即:

show schemas;

结果为:


  
  1. +--------------------+
  2. | Database |
  3. +--------------------+
  4. | information_schema |
  5. | jgyw |
  6. | mysql |
  7. | performance_schema |
  8. | sys |
  9. +--------------------+
  10. 5 rows in set ( 0. 00 sec)

说明jgyw模式同步到从库了

(5)、在从库上查看jgyw模式下的表及数据,即:


  
  1. use jgyw;
  2. show tables;

结果为:


  
  1. + ----------------+
  2. | Tables_in_jgyw |
  3. + ----------------+
  4. | comm_config |
  5. + ----------------+
  6. 1 row in set ( 0.00 sec)

说明表也同步好了,再查看数据,即:

select * from comm_config;

结果为:


  
  1. + ----------+--------------+--------------+
  2. | configId | configValue | description |
  3. + ----------+--------------+--------------+
  4. | name | 架构与我 | 测试一下 |
  5. + ----------+--------------+--------------+
  6. 1 row in set ( 0.00 sec)

说明数据也同步过来了。


转载:https://blog.csdn.net/meimeieee/article/details/113859047
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场