资讯专栏INFORMATION COLUMN

MySQL 主从复制

Vixb / 3406人阅读

摘要:查看效果主库中针对同步的数据库新增或修改数据,然后查看从库对应的数据库。主库从库查看数据库有没有出现表。解决方法,主库新建具有远程连接的账号,从库关闭现有的主从复制进程,重新设置,然后在开启主从复制。更多资料主从复制原理主从复制原理

1. 主库创建允许远程连接 + 至少具备 replication、slave 权限的 MySQL 用户 用户名解释

这边的用户 "slave_mysql"@"192.168.%" 指的是只允许 ip192.168. 开头的远程主机进行连接(本地测试用的),新手建议是设置为 "slave_mysql"@"%"。注意数据库通配符的使用。

mysql -u root -p

mysql> grant replication slave on *.* to "slave_mysql"@"192.168%" identified by "123456";
2. 主库配置文件设置 区分

[mysql] 是针对数据库客户端的配置

[mysqld] 是针对数据库服务器的配置

这边设置的是针对数据库服务器的配置:
[mysqld]
# 设置服务器ID,从服务器ID必须大于主服务器ID
server-id=1

# 启动 mysql 的二进制日志系统
log-bin=mysql-bin

# 需要同步的数据库名,如果有多个,则重复此参数,每个数据库一行
binlog-do-db=Test

# 不同步的 mysql 数据库,同上
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
3. 从库配置文件
[mysqld]
server-id=2
log-bin=mysql-bin

# 要复制的数据库
replicate-do-db=Test

# 不要复制的数据库
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=information_schema
replicate-ignore-db=sys
4. 查看主库 master 信息
show master status;
结果:
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                                | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000006 |     2216 | Test         | mysql,performance_schema,information_schema,sys |                   |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
1 row in set (0.00 sec)
这边特别注意的是 filepositionbinlog_do_db 三个字段,分别是二进制日志文件(实现主从复制的文件),从库开始复制的位置,需要进行同步的数据库。 5. 从库,开启同步
mysql> change master to 
mysql> master_host="192.168.1.1" ,             # 远程主机的IP地址
mysql> master_user="slave_mysql"@"192.168.%" , # 主库允许远程连接的用户
mysql> master_password="123456" ,              # 密码
mysql> master_log_file="mysql-bin.000006" ,    # 同步的日志文件
mysql> master_log_pos=2216;                    # 开始同步的位置
6. 从库检查是否成功开启
show slave status G
结果
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.150.128
                  Master_User: slave_mysql
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000006
          Read_Master_Log_Pos: 2216
               Relay_Log_File: grayVTouch-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000006
             Slave_IO_Running: Yes // 必须为 yes
            Slave_SQL_Running: Yes // 必须为 yes
              Replicate_Do_DB: Test
          Replicate_Ignore_DB:
          ......
1 row in set (0.00 sec)
Slave_IO_RunningSlave_SQL_Runniing 必须为 yes ,表示开启成功。 7. 查看效果 主库中针对同步的数据库新增(或修改)数据,然后查看从库对应的数据库。 主库
use Test;

create table if not exists test_master_slave (
    id int primary key auto_increment not null , 
    action char(255) , 
    c_time timestamp default current_timestamp
);
从库

查看 Test 数据库有没有出现 test_master_slave 表。

8. 相关问题 1. Slave_IO_Running:connecting 问题

从库没有访问主库的权限,实际就是主库没有开启远程访问的账号。解决方法,主库新建具有远程连接的账号,从库关闭现有的主从复制进程,重新设置 master,然后在开启主从复制。

执行 步骤1

mysql> stop slave;

重复 步骤5(包含步骤5)以下步骤

2. Slave_IO_Running:no 问题

SQL 语句出现错误,导致同步进程终止。具体可以查看从库错误日志,路径:/path/to/mysql/data/userAccount.err 文件。userAccount 指的是主库所在远程主机的用户名(猜的)。

9. 更多资料(主从复制原理)

主从复制原理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48716.html

相关文章

  • MySQL 主从复制原理

    摘要:引言主从复制原理是相当基础的知识,很久没有接触过主从复制了,因为我这边负责的业务暂时没用使用主从复制。在与之间实现整个主从复制的过程是由三个线程参与完成的。来自帮助文档复制过程服务器上执行,开启主从复制开关。 引言 MySQL 主从复制原理是相当基础的知识,很久没有接触过 MySQL 主从复制了,因为我这边负责的业务暂时没用使用 MySQL 主从复制。既然有些忘记了,现在我重新复习记录...

    LinkedME2016 评论0 收藏0
  • MySQL5.7 主从复制配置

    摘要:每一个主从复制的连接,都有三个线程。上创建一个测试数据库四主从复制创建授权用户创建用户,指定该用户只能在主库上使用密码登录为用户赋予权限。 一、主从复制原理 MySQL 主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个 log du...

    wenhai.he 评论0 收藏0
  • MySQL5.7 主从复制配置

    摘要:每一个主从复制的连接,都有三个线程。上创建一个测试数据库四主从复制创建授权用户创建用户,指定该用户只能在主库上使用密码登录为用户赋予权限。 一、主从复制原理 MySQL 主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个 log du...

    rainyang 评论0 收藏0
  • MySQL主从复制原理探索

    摘要:主从复制的原理是什么,主库中保存更新事件日志的二进制文件。对于每一个即将发送给从库的事件,输出线程会将其锁住。在从库里,当复制开始的时候,从库就会创建两个线程进行处理从库线程。可以知道,对于每一个主从复制的连接,都有三个线程。 上一篇文章里面,讲到了遇到mysql主从延迟的坑,对于这次的坑多说两句,以前也看过这样的例子,也知道不能够写完之后马上更新,但是真正开发的时候还是没有注意到这一...

    Baaaan 评论0 收藏0
  • 简单五步教你搭建MySQL主从复制

    摘要:环境主机从机环境目标实现主机到从机基于的主从复制目前提供两种方式主从复制基于我们此篇就是基于的主从复制基于第步下载并分别安装到主机和从机,网上有很多例子。第步在主机和从机上分别拷贝配置文件到下。可以创建库或者表查看同步情况。 环境 主机:172.17.0.2从机:172.17.0.3环境:CentOS7MySQL:5.6.38目标:实现主机172.17.0.2到从机172.17.0.3...

    Vixb 评论0 收藏0
  • 简单五步教你搭建MySQL主从复制

    摘要:环境主机从机环境目标实现主机到从机基于的主从复制目前提供两种方式主从复制基于我们此篇就是基于的主从复制基于第步下载并分别安装到主机和从机,网上有很多例子。第步在主机和从机上分别拷贝配置文件到下。可以创建库或者表查看同步情况。 环境 主机:172.17.0.2从机:172.17.0.3环境:CentOS7MySQL:5.6.38目标:实现主机172.17.0.2到从机172.17.0.3...

    cyqian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<