MySQL复制的多种方法

MySQL复制主要是把写操作发送给主节点、读操作发送给从节点,每个节点都有相关的数据集;从服务专门启动一个线程,把自己扮演成为客户端,通过MySQL协议向MySQL主节点请求读取二进制日志文件中的事件,随后主节点将会检查自己二进制日志中的事件并发送给从节点,从节点收到后先保存在自己的中继日志中,每读取到一个事件都会在中继中保存下来

复制中用到的线程名称:

从节点:

I/O Thread:从主节点请求二进制事件,并保存于中继日志中

SQL Thread:从中继日志中读取二进制日志事件,在本地完成重放

主节点:

dump Thread:为每个从节点的I/O Thread启动一个dump  Thread,用于向其发送二进制日志事件

复制的功用:

1、实现数据分布的目的

2、主要能够完成写操作的负载均衡效果

3、能够实现备份的效果(当主服务器挂了,备节点可以当主节点)

4、可以实现高可用和故障切换

5、可以在从节点上为Mysql做升级测试

MySQL复制的方式:主从复制、主主复制、半同步复制、过滤复制、SSL复制

一、实现主从复制:

准备环境

虚拟机1:Master节点(主节点) IP:192.168.1.108
虚拟机2:Slave节点(从节点) IP:192.168.1.109

1、部署Master节点

(1)、安装mariadb服务

[[email protected] ~]# yum install mariadb-server -y

(2)编辑其配置文件

[[email protected] ~]# vim /etc/my.cnf   ##mariadb配置文件路径
[mysqld]
log_bin=mysql-bin   ##开启二进制日志功能
server-id=1   ##定义唯一Server-id
innodb_file_per_table = ON
skip_name_resolve = ON   ##禁止反解主机名
[[email protected] ~]# systemctl start mariadb.service  ##启动mariadb服务
MariaDB [(none)]> show global variables like "server_id";    ##查看其server-id
server_id  1    
 
MariaDB [(none)]> show global variables like "log_bin";  ##查看其二进制日志是否开启
log_bin  ON 
 
MariaDB [(none)]> show master status;   ##查看正在使用的二进制日志文件
mysql-bin.000002   245           |
 
MariaDB [(none)]> grant replication slave,replication client on *.* to ‘repluser‘@‘192.168.%.%‘ identified by ‘replpass‘;   ##创建具有复制权限的用户
MariaDB [(none)]> flush privileges;

2、部署Slave节点

(1)安装mariadb服务

[[email protected] ~]# yum install mariadb-server -y

(2)编辑其配置文件

[[email protected] ~]# vim /etc/my.cnf
[mysqld]
relay-log=relay-log   ##启用中继日志
server-id=2    ##定义唯一Server-id;此Server-id一定不能和Master的上的Server-id相同
innodb_file_per_table = ON
skip_name_resolve = ON  
[[email protected] ~]# systemctl start mariadb.service
MariaDB [(none)]> show global variables like "relay_log";  ##查看中继日志是否启用
relay_log   relay-log 
 
MariaDB [(none)]> show global variables like "server_id";   ##查看其server-i
server_id   2

(3)使用具有复制权限的用户账号连接至主服务器上,并启动复制线程

MariaDB [(none)]> change master to master_host=‘192.168.1.108‘,master_user=‘repluser‘,master_password=‘replpass‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=245;
## master_host:指明主节点的IP地址
## master_user、master_password:指明具有复制权限的用户账号
## master_log_file:指明主节点正在使用的二进制日志;
## master_log_pos:指明二进制日志的position
MariaDB [(none)]> start slave;   ##启动复制线程
MariaDB [(none)]> show slave status\G;  ##查看复制线程的状态信息
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

3、测试主从服务器是否实现复制功能

(1)在Master节点上查看一次数据库

MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| lweim            
| mysql              
| performance_schema 
| test               
+--------------------+

(2)在Slave上查看一次数据库

MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| testdb               
+--------------------+

(3)在Master节点上创建一个名为“MaGeRepo”的数据库,并在Slave节点上查看

MariaDB [(none)]> create database MaGeRepo;  ##在主节点上创建数据库“MaGeRepo”
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;   ##在从节点上查看数据库
+--------------------+
| Database           
+--------------------+
| information_schema 
| MaGeRepo                         
| mysql              
| performance_schema 
| testdb               
+--------------------

在主从复制架构中应该注意的问题:

1、在Master节点上的参数

sync_binlog=ON
sync_master_info=ON
如果用的是InnoDB存储引擎,以下两项也要开启
innodb_flush_log_at_tx_commit = ON   ##刷写日志
innodb_support_xa = ON   ##是否让innodb支持分布式事务

2、在Slave节点上的参数

skip_slave_start = OFF  ##是否自动启动事务线程
sync_relay_log = ON   
sync_relay_log_info = ON

二、实现主主复制

准备环境

虚拟机1:Master节点(主节点) IP:192.168.1.108
虚拟机2:Master节点(主节点) IP:192.168.1.109

1、部署虚拟机1

(1)安装mariadb服务

[[email protected] ~]# yum install mariadb-server -y

(2)编辑其配置文件

[[email protected] ~]# vim /etc/my.cnf
log_bin=mysql-bin
relay-log=relay-log   ##启用中继日志
server-id=1
innodb_file_per_table = ON
[[email protected] ~]# systemctl start mariadb.service
MariaDB [(none)]> show global variables like "%log%";
relay_log  relay-log 
log_bin   ON    
 
MariaDB [(none)]> show master status;
mysql-bin.000003    245             
 
MariaDB [(none)]> grant replication slave,replication client on *.* to ‘repluser‘@‘192.168.%.%‘ identified by ‘replpass‘;

2、部署虚拟机2

(1)安装mariadb服务

[[email protected] ~]# yum install mariadb-server -y

(2)编辑配置文件

[[email protected] ~]# vim /etc/my.cnf
[mysqld]
relay-log=relay-log
log_bin=mysql-bin  ##启用二进制日志  
server-id=2
innodb_file_per_table = ON
skip_name_resolve = ON
[[email protected] ~]# systemctl start mariadb.service
MariaDB [(none)]> show master status;
mysql-bin.000003   245                                
 
MariaDB [(none)]> grant replication slave,replication client on *.* to ‘repluser‘@‘192.168.%.%‘ identified by ‘replpass‘;   ##创建具有复制权限的用户账号

3、两个节点分别使用双方创建的用户连到对方的服务器上,并启动复制线程

(1)让虚拟机1连接至虚拟机2

MariaDB [(none)]> change master to master_host=‘192.168.1.109‘,master_user=‘repluser‘,master_password=‘replpass‘,master_log_file=‘mysql-bin.000003‘,master_log_pos=245;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> start slave;

(2)让虚拟机2连接至虚拟机1

MariaDB [(none)]> change master to master_host=‘192.168.1.108‘,master_user=‘repluser‘,master_password=‘replpass‘,master_log_file=‘mysql-bin.000003‘,master_log_pos=245;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> start slave;

4、测试主主复制模型

(1)在分别查看虚拟机1和虚拟机2的数据库

MariaDB [(none)]> show databases;  ##查看虚拟机1的数据库
+--------------------
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| test              
+--------------------+
MariaDB [(none)]> show databases;  ##查看虚拟机2的数据库
+--------------------+ 
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| testdb              
+--------------------+

(2)在虚拟机1上添加“LweimRepo"数据库,在虚拟机2上添加“WzxRepo”数据库

MariaDB [(none)]> create database LweimRepo;   ##虚拟机1
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> create database WzxRepo;    ##虚拟机2
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> flush privileges;

(3)再次查看两个节点的数据库

MariaDB [(none)]> show databases;   ##查看虚拟机1
+--------------------+
| Database           
+--------------------+
| information_schema 
| LweimRepo          
| WzxRepo            
| mysql              
| performance_schema 
| test               
+--------------------+
MariaDB [(none)]> show databases;   ##查看虚拟机2
+--------------------+
| Database           
+--------------------+
| information_schema 
| LweimRepo          
| WzxRepo            
| mysql              
| performance_schema 
| testdb              
+--------------------+

三、实现半同步复制:当master节点有多个slave节点时,只需要有一个slave节点复制完成之后并响应给master节点,随后master节点响应客户端

准备环境

虚拟机1:Master节点(主节点) IP:192.168.1.108
虚拟机2:Slave节点(从节点) IP:192.168.1.109

1、给master节点安装插件“semisync_master.so”

MariaDB [(none)]> install plugin rpl_semi_sync_master soname ‘semisync_master.so‘;
MariaDB [(none)]> show global variables like "%semi%";
+------------------------------------+-------+
| Variable_name            Value 
+------------------------------------+-------+
| rpl_semi_sync_master_enabled     OFF     ##是否启用半同步复制的主节点,需把它设置为ON
| rpl_semi_sync_master_timeout     10000    ##等待slave的响应时长,单位为毫秒,默认为10s
| rpl_semi_sync_master_trace_level   32       ##跟踪节点32,默认值就好,不建议更改
| rpl_semi_sync_master_wait_no_slave   ON       ##当没有slave节点时是否等待
+------------------------------------+-------+
MariaDB [(none)]> set global rpl_semi_sync_master_enabled=1;  ##“rpl_semi_sync_master_enabled”更改为“ON”

2、在Slave节点上安装“semisync_slave.so”

MariaDB [(none)]> install plugin rpl_semi_sync_slave soname ‘semisync_slave.so‘;
MariaDB [(none)]> set global rpl_semi_sync_slave_enabled=1;  ##启用半同步复制的slave节点
MariaDB [(none)]> show global variables like "%semi%";
+---------------------------------+-------+
| Variable_name           Value 
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled    ON     ##是否启用半同步复制的slav节点
| rpl_semi_sync_slave_trace_level   32    
+---------------------------------+-------+

3、实现主从复制

4、在Master节点上查看是否增加slave节点

MariaDB [(none)]> show global status like "%semi%";
+--------------------------------------------+-------+
| Variable_name                Value 
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients         1      ##已经连接Slave节点的个数
| Rpl_semi_sync_master_net_avg_wait_time    0     
| Rpl_semi_sync_master_net_wait_time       0     
| Rpl_semi_sync_master_net_waits         0     
| Rpl_semi_sync_master_no_times          1    
| Rpl_semi_sync_master_no_tx          2     
| Rpl_semi_sync_master_status           ON   
| Rpl_semi_sync_master_timefunc_failures    0     
| Rpl_semi_sync_master_tx_avg_wait_time      0     
| Rpl_semi_sync_master_tx_wait_time        0     
| Rpl_semi_sync_master_tx_waits         0     
| Rpl_semi_sync_master_wait_pos_backtraverse   0     
| Rpl_semi_sync_master_wait_sessions      0      
| Rpl_semi_sync_master_yes_tx           0     
+--------------------------------------------+---
----

5、在Master节点上创建数据库“GunDuZi,并在Slave节点上查看

MariaDB [(none)]> create database GunDuZi;
MariaDB [(none)]> show global status like "%semi%";
+--------------------------------------------+-------+
| Variable_name                Value 
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients         1     
| Rpl_semi_sync_master_net_avg_wait_time    8147  
| Rpl_semi_sync_master_net_wait_time      8147  
| Rpl_semi_sync_master_net_waits        1     
| Rpl_semi_sync_master_no_times         1     
| Rpl_semi_sync_master_no_tx          2     
| Rpl_semi_sync_master_status          ON    
| Rpl_semi_sync_master_timefunc_failures    0     
| Rpl_semi_sync_master_tx_avg_wait_time    9388  
| Rpl_semi_sync_master_tx_wait_time      9388  
| Rpl_semi_sync_master_tx_waits          1     
| Rpl_semi_sync_master_wait_pos_backtraverse   0     
| Rpl_semi_sync_master_wait_sessions       0     
| Rpl_semi_sync_master_yes_tx           1     
+--------------------------------------------+-------
MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| GunDuZi            
| mysql              
| performance_schema 
| test               
+--------------------+
##注意:一定要先安装插件,在实现主从复制

四、实现过滤复制:让从节点指定复制数据库或复制数据库中指定的表

准备环境

虚拟机1:Master节点(主节点) IP:192.168.1.108
虚拟机2:Slave节点(从节点) IP:192.168.1.109

1、实现主从复制

2、指定Slave节点需要复制的数据库为“wtcdb”

MariaDB [wxpp]> set global replicate_do_db=wtcdb;
MariaDB [wxpp]> show global variables like "replicate%";
+----------------------------------+-----------+
| Variable_name           Value     
+----------------------------------+-----------+
| replicate_annotate_row_events    OFF       
| replicate_do_db           wtcdb   ##仅复制那些数据库   
| replicate_do_table   ##仅复制那些数据库中的表
| replicate_events_marked_for_skip  replicate 
| replicate_ignore_db     ##忽略的数据库(不复制的数据库)
| replicate_ignore_table   ##忽略的表(不复制的表)
| replicate_wild_do_table   ##可以使用通配符来指定需要复制的数据库
| replicate_wild_ignore_table              
+----------------------------------+-----------+

3、查看Slave节点上的数据库

MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| test               
| wxpp               
+--------------------+

4、在Master节点上创建“lweimdb”、“wzxdb”、“wtcdb”三个数据库

MariaDB [(none)]> create database lweimdb;
Query OK, 1 row affected (0.01 sec)
 
MariaDB [(none)]> create database wzxdb;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> create database wtcdb;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| lweimdb            
| mysql              
| performance_schema 
| test               
| wtcdb              
| wxpp               
| wzxdb              
+--------------------+

5、再一次查看Slave节点上的数据库,是否只复制了“wtcdb”数据库

MariaDB [(none)]> show databases;
+--------------------+
| Database           
+--------------------+
| information_schema 
| mysql             
| performance_schema 
| test               
| wtcdb              
| wxpp               
+--------------------+

五、实现SSL复制

准备环境

虚拟机1:Master节点(主节点) IP:192.168.1.108
虚拟机2:Slave节点(从节点) IP:192.168.1.109

虚拟机3:CA机构(签署主从节点证书)

IP:192.168.1.110

1、部署虚拟机3

(1)创建CA证书秘钥

[[email protected] CA]# (umask 077;openssl genrsa -out ./private/cakey.pem 1024)

(2)让CA自签证书

[[email protected] CA]# openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem -days 365
[[email protected] CA]# touch serial index.txt  ##创建所需要的文件
[[email protected] CA]# echo 01 > serial   ##生成证书序列号

2、Master节点创建证书,并让CA机构签署

[[email protected] ssl]# (umask 077; openssl genrsa -out master.key 1024)  ##Master节点生成秘钥
[[email protected] ssl]# openssl req -new -key master.key -out master.csr -days 365  ##生成需要签署的证书
[[email protected] CA]# openssl ca -in /tmp/master.csr -out master.crt -days 365 ##让CA签署证书
[[email protected] ssl]# chmod 600 *   ##更改权限为600
[[email protected] ssl]# chown mysql.mysql -R ssl/*   ##更改文件属主属组为mysql
[[email protected] ssl]# ll
total 12
-rw------- 1 mysql mysql 1046 Jun  9 20:49 cacert.pem
-rw------- 1 mysql mysql 3202 Jun  9 20:43 master.crt
-rw------- 1 mysql mysql  887 Jun  9 20:35 master.key

3、配置Master节点的配置文件,并创建具有复制权限的用户

[[email protected] ~]# vim /etc/my.cnf
ssl     ##开启sll功能
ssl_ca=/var/lib/mysql/ssl/cacert.pem    ##指明CA机构证书路径
ssl_cert=/var/lib/mysql/ssl/master.crt  ##指明Master节点的证书路径
ssl_key=/var/lib/mysql/ssl/master.key   ##指明Master节点的秘钥路径
[[email protected] ~]# systemctl start mariadb.service
MariaDB [(none)]> show global variables like "%ssl%";  ##查看是否启用ssl
+---------------+-------------------------------+
| Variable_name | Value                         
+---------------+-------------------------------+
| have_openssl  | YES                           
| have_ssl      | YES                           
| ssl_ca        | /var/lib/mysql/ssl/cacert.pem 
| ssl_capath                                  
| ssl_cert      | /var/lib/mysql/ssl/master.crt 
| ssl_cipher                                  
| ssl_key       | /var/lib/mysql/ssl/master.key 
+---------------+-------------------------------+
MariaDB [(none)]> grant replication slave,replication client on *.* to ‘repluser‘@‘192.168.%.%‘ identified by ‘replpass‘ require ssl;

4、将Master节点上的证书发送给Slave,修改其配置文件,连接至Master节点并启动复制线程

[[email protected] ~]# scp ssl/* [email protected]:/var/lib/mysql/   ##要确保发送的文件属组属主为“mysql”
[email protected]‘s password: 
cacert.pem      100% 1046     1.0KB/s   00:00    
master.crt      100% 3206     3.1KB/s   00:00     
master.key      100%  887      0.9KB/s   00:00    
[[email protected] ~]# vim /etc/my.cnf   
ssl    
ssl_ca=/var/lib/mysql/cacert.pem   
ssl_cert=/var/lib/mysql/master.crt
ssl_key=/var/lib/mysql/master.key
[[email protected] ~]# systemctl start mariadb.service
MariaDB [(none)]> show global variables like ‘%ssl%‘;    ##从节点上的SSL的功能已经开启
+---------------+---------------------------+
| Variable_name  | Value                     
+---------------+---------------------------+
| have_openssl   | YES                       
| have_ssl       | YES                       
| ssl_ca         | /var/lib/mysql/cacert.pem 
| ssl_capath     |                           
| ssl_cert       | /var/lib/mysql/master.crt 
| ssl_cipher     |                          
| ssl_key        | /var/lib/mysql/master.key 
+---------------+---------------------------+
MariaDB [(none)]> change master to master_host=‘192.168.1.108‘,master_user=‘repluser‘,master_password=‘replpass‘,master_log_file=‘mysql-bin.000003‘,master_log_pos=245,master_ssl=1,master_ssl_ca=‘/var/lib/mysql/cacert.pem‘,master_ssl_cert=‘/var/lib/mysql/master.crt‘,master_ssl_key=‘/var/lib/mysql/master.key‘;
## master_ssl:启用ssl功能
## master_ssl_ca:指明CA证书路径
## master_ssl_cert:指明Master节点证书路径
## master_ssl_key:指明Master节点秘钥路径
MariaDB [(none)]> start slave;  ##启动复制线程
MariaDB [(none)]> show slave status\G; ##查看复制线程相关信息
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_SSL_Allowed: Yes   ##要确保这三项都为“YES”
Master_SSL_CA_File: /var/lib/mysql/cacert.pem
Master_SSL_Cert: /var/lib/mysql/master.crt
Master_SSL_Key: /var/lib/mysql/master.key

5、分别查看Master节点和Slave节点上的数据库

MariaDB [(none)]> show databases;  ##查看Master节点
+--------------------+
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| ssl                
| test               
+--------------------+
MariaDB [(none)]> show databases;   ##查看Slave节点
+--------------------+
| Database           
+--------------------+
| information_schema 
| mysql              
| performance_schema 
| test               
+--------------------+

6、在Master节点上创建"LweimRepo”、“HjRepo”、“WzxRepo”,随后再到Slave节点上查看

MariaDB [(none)]> create database LweimRepo;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> create database HjRepo;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> create database WzxRepo;
Query OK, 1 row affected (0.04 sec)
MariaDB [(none)]> show databases;   ##在Slave节点上查看
+--------------------+
| Database           
+--------------------+
| information_schema 
| HjRepo             
| LweimRepo          
| WzxRepo            
| mysql              
| performance_schema 
| test               
+--------------------+

问题小结:

1、当Slave节点连接至Master节点时,一定要指明Master节点当前使用的二进制日志以及pos

2、在使用SSL复制时,要确保秘钥、证书文件的权限以及属主属组

3、当生成证书时,三台虚拟机的国家、省份、公司名称必须要一样

时间: 2024-10-02 09:54:17

MySQL复制的多种方法的相关文章

MYSQL 复制详解

MySql 复制介绍 MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况 下复制是异步进行的,从库也不需要一直连接到主库来同步数据 MySQL复制的数据粒度可以是主实例上所有的数据库,也可以是指定的一个或多个数据库 ,也可以是一个数据库里的指定的表 MySQL复制所带来的优势在于: 扩展能力:通过复制功能可以将MySQL的性能压力分担到一个或多个slave上.这要求所有 的写操作和修改操作都必须在Master上完成,而读操作可以被分配到一个或多个s

MySQL 实现双向复制的方法指南

MySQL 实现双向复制的方法指南 投稿:hebedich 字体:[增加 减小] 类型:转载 这篇文章主要介绍了MySQL 实现双向复制的方法指南,本文包括:主机配置,从机配置,建立主-从复制,建立双向复制,需要的朋友可以参考下 简介 我知道有很多文章和指南介绍在互联网上实现主-从复制.在主-从复制中,主机影响从机.但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制.(即,无论是主机还是从机的更改都将影响这两个服务器). 背景 你能参考Aadhar Joshi的这篇文章实现主从

MySQL快速复制数据库的方法

某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库.使用以下方法,可以非常简单地实现. 假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb.步骤如下: 1. 首先创建新的数据库newdb #mysql  -u root -ppassword mysql>CREATE  DATABASE `newdb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; 2. 使用mysqldump及mysq

MySQL中快速复制数据表方法汇总

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令

测试php与mysql的连接是否成功的多种方法

测试php与mysql的连接是否成功的多种方法其实使用的就是一个php的函数: mysql_connect(); 定义 mysql_connect() 函数打开非持久的 MySQL 连接. 用法: <?php$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {    die('Could not connect: ' . mysql_error());}echo 'Connected su

mysql 复制表结构、表数据的方法

From: http://blog.163.com/[email protected]/blog/static/109463675201191173221759/ MySQL 添加列,修改列,删除列的sql语句写法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter t

Mysql最简单的复制环节部署方法

最简单的复制环境部署方法 这里环境如下: Master一直没有写操作 Master和Slave在一台虚拟机中,端口号分别为3306和3307 1.关闭Master数据库服务 mysqladmin -umysql -p -S /data/mysqldata/3306/mysql.sock shutdown 2.复制数据文件 cp -r /data/mysqldata/3306 /data/mysqldata/3307 3.编辑Master的参数文件 在[mysqld]区块中添加 server_id

涂抹mysql笔记-mysql复制特性

<>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到C.也可以实现A直接复制到B和C(单主多从复制),甚至A的数据复制给B,B的数据也复制会A(双主复制) <>mysql复制处理数据时,有三种不同的模式: 1.基于语句复制(Statement Based Replication):基于实际执行的sql语句的模式方案简称SBR 2.基于记录复制(Ro

MySQL 复制过滤器、监控维护及主从复制的读写分离

MySQL 复制过滤器.监控维护及基于SSL的主从复制 =============================================================================== 概述: 本章将主要介绍MySQL复制中如何过滤,监控维护,以及基于SSL的主从复制,具体内容如下: MySQL 复制过滤器 ·从服务器库级别过滤 MySQL 清理日志:PURGE 复制监控 ·Master ·Slave 如何确定主从节点的数据是否一致 MySQL基于SSL的主从复制(