mysql数据库主从复制

11 篇文章 0 订阅
7 篇文章 0 订阅

一:阿里云数据库与自建数据库搭建主从关系

阿里云数据库:主-master

自建数据库:    从-slave

1、主数据库设置:

由于阿里云本身就具有主从配置,所以阿里云只需要配置相应的账号即可,需要读数据权限。

1、记录阿里云master的bin的位置和日志信息,后面再slave需要这里的参数信息

登录数据库:

# mysql  -u  root  -p

运行命令:

mysql> show master status;

+------------------+----------+--------------+------------------+----------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                            |
+------------------+----------+--------------+------------------+----------------------------------------------+
| mysql-bin.001386 |      194 |              |                  | 86015bc7-9abc-11e7-9cd8-00163e084ad1:1-88281 |
+------------------+----------+--------------+------------------+----------------------------------------------+
1 row in set

2、刷新日志

mysql> flush logs;
Query OK, 0 rows affected

注意:因为刷新日志file的位置会+1,即File变成为:mysql-bin.001387

2、自建数据库设置

1、打开数据库配置文件:/etc/my.cnf

在最后面添加以下配置信息,并保存,重启数据库:systemctl  restart  mysqld.service

# 主从配置项:

# 配置从实例的 server-id 和要同步的数据库
# 服务 ID,主从实例 server-id 需不同
server-id               =  1246719              
# log_bin                 =  /var/log/mysql/mysql-bin.log
expire_logs_days        =  10
max_binlog_size         =  100M
# 需要同步的数据库
replicate-do-db         =  jtcone              
# 不需要同步的数据库
replicate-ignore-db     =  mysql                  
replicate-ignore-db     =  information_schema     
replicate-ignore-db     =  performance_schema     
replicate-ignore-db     =  sys                  
replicate-ignore-db     =  jtc                   
replicate-ignore-db     =  jtctwo               

# 不进行同步的表,可以并列写多个
# replicate-wild-ignore-table=db1.table1
# replicate-wild-ignore-table=db2.table2

# 只读
# read_only  = 1

# 配置 GTID 同步模式,binlog 格式为 row,以兼容主实例。
gtid_mode=on
enforce_gtid_consistency=on
# 设置 binlog 为 row
binlog_format = row                             
# 同步主库操作日志
log-slave-updates = 1

# 跳过所有错误,这个参数至关重要,想要研究这个参数的作用,可以先不写,看看发生什么
slave-skip-errors = all

 

执行如下命令,查看 binlog 配置结果。

 # show variables like '%binlog_format%';

返回以下信息:

+-------------------------+-----------------+
| Variable_name           | Value           |
+-------------------------+-----------------+
| binlog_format           | ROW             |
+-------------------------+-----------------+

2、登录数据库,设置同步选项,运行以下语句

mysql>   CHANGE MASTER TO 
               MASTER_HOST='rm-wz03g21ikz4v49kspo.mysql.rds.aliyuncs.com',  
               MASTER_PORT=3306,           
               MASTER_USER='root',        
               MASTER_PASSWORD='u46234216W',
               MASTER_AUTO_POSITION=0,
               MASTER_LOG_FILE='mysql-bin.001386', 
                MASTER_LOG_POS=194;  
  

注意:

               MASTER_HOST:主数据库地址  
               MASTER_PORT:主数据库连接端口           
               MASTER_USER:主数据库连接用户
               MASTER_PASSWORD:主数据库连接密码
               MASTER_AUTO_POSITION:同步其实位置
               MASTER_LOG_FILE:主数据库的日志信息,需要经过第一步查询主数据库
                MASTER_LOG_POS:主数据库的日志信息,需要经过第一步查询主数据库

使用的是root的账号设置后,往后即使用其他授权后的用户也可做主从复制。如:jtcuser用户在主数据库同样能对从数据库主从操作。

3、运行slave

mysql> slave start;

停止slave命令:slave stop;

查看slave运行状态:

4、查看运行状态

mysql> show slave status\G;

出现以下:代表成功

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
 

5、测试,在master数据库中增减数据:

INSERT INTO t_area_user (id ,t_area_id,t_user_id) VALUES ( 'ad111222222d','dadadfa','adfadfad')
DELETE from t_area_user where id ='adad'

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunzai6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值