前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql数据库主从同步

mysql数据库主从同步

作者头像
Sindsun
发布2019-12-11 16:00:23
6.9K0
发布2019-12-11 16:00:23
举报
文章被收录于专栏:狂码一生狂码一生

教程所用环境:centos7 + mysql5.5.57

一、起步准备

 主库服务器:192.168.43.200

 从库服务器:192.168.43.201

 均安装mysql5.5.57  //这里最好安装同一版本的数据库

二、配置主库服务器(192.168.43.200):

1、打开/etc/my.cnf配置文件,进行如下配置

代码语言:javascript
复制
 log-bin=/mysqllog/no1  #这里可以使用默认,或者是自己指定目录与文件名,但前提是需要手动创建并给予所有权限
 binlog_format=mixed    #默认即可,如果有其它需要自行在网上搜索
 server-id   = 1        #这里的server-id必须与其它从或者主服务器是不相同的

 2、登录mysql,创建mysql用户(或者使用已经存在的也行),并且给予只能进行主从同步

代码语言:javascript
复制
/*新建用户,使用已有用户的略过进行下面的*/
/*设置的主机只允许192.168.43.201进行连接访问*/
mysql> create user 'sindsun'@'192.168.43.201' identified by '123456';

/*指定账号的指定权限/用途*/
mysql> grant replication slave on *.* to 'sindsun'@‘192.168.43.201’ identified by ‘123456’;

/*此处可能会出现无法正常进行的错误,运行一下下面的语句或者在重启mysql器后再运行下面的命令*/
mysql> flush privileges;

二、数据导入与导出

flush tables with read lock;

 将主要要同步到从库的数据库导出(注意这里一定要将主库锁定停止操作),然后将导入的数据库导入到从库中去(注意主从表名一致),如果在这里导入数据的状态不一致或者有表的主键自增不一致,则会导致无法同步,这里操作从简单,但要谨慎操作。

三、配置从库服务器(192.168.43.201):

 1、打开/etc/my.cnf配置文件,进行如下配置

代码语言:javascript
复制
#主从复制的表
replicate-do-db=db

replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

replicate-ignore-table=db.oauth_access_tokens
replicate-ignore-table=db.oauth_sessions
replicate-ignore-table=db.oauth_refresh_tokens
#replicate_wild_ignore_table = mysql.%
#replicate_wild_ignore_table =  information_schema.%
#replicate_wild_ignore_table =  performance_schema.%

default_authentication_plugin = mysql_native_password
#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#skip-grant-tables
#skip-log-bin

sql_mode=''

#这里可以使用默认,或者是自己指定目录与文件名,但前提是需要手动创建并给予所有权限,从服务器可以不配置
log-bin=mysql-bin
binlog-format=mixed
#这里的server-id必须与其它从或者主服务器是不相同的
server-id=11
log-slave-updates
#slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误

 2、登录mysql,配置同步参数

代码语言:javascript
复制
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.43.200',              #主库服务器地址
    -> MASTER_USER='sindsun',                     #前面我们在主库添加的专用账号
    -> MASTER_PASSWORD='123456',                  #密码
    -> MASTER_LOG_FILE='no1.000001',              #主库日志文件,如何获取在下面将会说明
    -> MASTER_LOG_POS=107                         #主服务器状态,如何获取在下面将会说明

 MASTER_LOG_FILE的值是从主库服务器查询的,在我们设置的日志目录中,一定要选择最新的,最好是在执行第二步的时候记录下来,具体如图:

 MASTER_LOG_POS的值也是从主库服务器查询的,最好是在执行第二步的时候记录下来,具体如图:

 3、启动同步进程

代码语言:javascript
复制
mysql> start slave;

 4、检查同步状态,标出的两个全为YES表示成功

代码语言:javascript
复制
mysql> show slave status \G;

四、测试

只要按上边的步骤全部走通了,这里向主库写数据,那么从库一定会同步过来的。

PS:

清除主从同步参数

reset slave all;

锁表

LOCK TABLES table_name READ | WRITE

解锁

UNLOCK tables;

版权声明: 此文为本站源创文章或由本站编辑从网络整理改编,载请备注出处:[]()[ 狂码一生](https://www.sindsun.com/article-details-94.html)(https://cloud.tencent.com/developer/article/1552455)

若此文确切存在侵权,请联系本站管理员进行删除!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档