Mysql配置主从复制

废话不多说,直接说步骤。
准备两个mysql数据库,一个作为master,一个做slave,

一、master数据库配置:

1、修改配置文件
修改my.cnf配置文件,在[mysqld]的位置下面添加两行配置。
第一行用于开启二进制日志文件,主从之间就是从库获取主库的二进制日志文件保持数据一致。
第二行是一个server-id,用来作为数据库的唯一标示,建议使用IP地址的最后一位。
[mysqld]
log-bin=mysql-bin
server-id=1
mysql> show master status;
FilePosition
mysql-bin.000001836

1 row in set (0.02 sec)

这两个值等会配置从库时会用到。
2、新建一个用于同步的用户。
#新建用户
mysql>create user 'yzp'@'%' identified by 'yzp123';
#授权
mysql>grant repliaciton slave on *.* to 'yzp'@'%' identified by 'yzp123';

二、Slave数据库配置

同样的也是修改my.cnf配置文件,在[mysqld]下面的位置加入两行。
[mysqld]
log-bin=mysql-bin
server-id=2
#配置从库
mysql>change master to master_host='192.168.100.1',master_user='yzp',master_password='yzp123',master_log_file='mysql-bin.000001',master_log_pos=836;

# 这里的master_host就是主机IP地址
# master_user是刚才在master上授权的用户
# master_log_file就是刚才master上查到的File,即二进制日志
# master_log_pos就是刚才查到的位置,表示从日志的哪个位置开始同步

#查看下slave状态
mysql>show slave status;

三、测试

master新建一个库,新建一张表,插入一条数据
# 创建测试数据库,
mysql>CREATE DATABASE `test_replication` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
#创建表,插数据
mysql>use test_replication;
mysql>create table test_01(id int(10),name varchar(20),primary key(id));
mysql>insert into test_01(1,'tom');
到Slave数据库中去查询
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test_replication   |
+--------------------+
5 rows in set (0.03 sec)
#刚才新建的数据库已经查到了
mysql> use test_replication;
Database changed
mysql> select * from test_01;
+----+------+
| id | name |
+----+------+
|  1 | tom  |
|  2 | cat  |
+----+------+
2 rows in set (0.07 sec)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 主从复制中,可以使用 "start-position" 或 "start-datetime" 参数来指定从哪个位置或时间点开始复制。这些参数可以在从服务器上的配置文件中设置。下面是具体步骤: 1. 打开从服务器上的配置文件 my.cnf 或 my.ini。 2. 找到 [mysqld] 段,添加以下参数: - 使用 "start-position" 参数: ``` replicate-do-db=database_name replicate-ignore-db=mysql replicate-wild-do-table=database_name.% master-info-file=/var/lib/mysql/master.info relay-log-info-file=/var/lib/mysql/relay-log.info relay-log=/var/lib/mysql/relay-log log-bin=mysql-bin log-slave-updates server-id=2 master-host=master_server_ip master-user=replication_user master-password=replication_password replicate-do-table=database_name.table_name replicate-do-table=database_name.table_name2 replicate-do-table=database_name.table_name3 replicate-do-table=database_name.table_name4 replicate-do-table=database_name.table_name5 relay-log-recovery=1 ``` 其中,"start-position" 参数可以在 "master-info-file" 文件中找到。 - 使用 "start-datetime" 参数: ``` replicate-do-db=database_name replicate-ignore-db=mysql replicate-wild-do-table=database_name.% master-info-file=/var/lib/mysql/master.info relay-log-info-file=/var/lib/mysql/relay-log.info relay-log=/var/lib/mysql/relay-log log-bin=mysql-bin log-slave-updates server-id=2 master-host=master_server_ip master-user=replication_user master-password=replication_password replicate-do-table=database_name.table_name replicate-do-table=database_name.table_name2 replicate-do-table=database_name.table_name3 replicate-do-table=database_name.table_name4 replicate-do-table=database_name.table_name5 relay-log-recovery=1 ``` 其中,"start-datetime" 参数可以在 "master-info-file" 文件中找到。 3. 保存并关闭文件,重启从服务器。 4. 在从服务器上执行以下命令启动复制: ``` CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication_user', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; ``` 其中,"MASTER_LOG_FILE" 和 "MASTER_LOG_POS" 分别对应 "start-position" 或 "start-datetime" 的值。 注意:在使用 "start-datetime" 参数时,需要保证主从服务器的时区设置相同,否则可能会导致复制不一致的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值