目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制

环境:
  主数据库: 192.168.1.1
  从数据库: 192.168.1.2

  mysql安装可参考:https://www.cnblogs.com/merely/p/9714681.html

配置步骤:

1、保证两个数据库中的库和数据是一致的;

2、在主数据中创建一个同步账号(可不创建使用现有的),如果仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。
1)、创建一个账号,账号:master 密码: 123456

CREATE USER 'master'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

3、配置主数据库
1)要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。
4)配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”作为前缀,Server ID配置为1,如下:

[mysqld]
log-bin=mysql-bin
server-id=1
#网络上还有如下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=1
sync_binlog=1

4、重启mysql

5、查看主服务器状态:

cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> show master status;

注意:记录好File和Position,后面要用

6、配置从数据库:
1)从服务器,同理,要分配一个唯一的Server ID,需要关闭MySQL,修改好后再重启,如下:

[mysqld]
server-id=2
#可以指定要复制的库
replicate-do-db=test-xxx #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db=mysql #忽略的库
#网上还有下面配置
#relay-log=mysqld-relay-bin

2)配置连接主服务器的信息:
进入sqlplus:

cd /usr/local/mysql/bin
./mysql -uroot -p

mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.1',
-> MASTER_USER='master',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3309,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=154;
mysql> start slave;

3)查看状态

mysql> show slave status \G;

       Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.1.1Master_User: masterMaster_Port: 3309Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 2950Relay_Log_File: localhost-relay-bin.000007Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: test-xxxReplicate_Ignore_DB: mysql...
Seconds_Behind_Master: 0 #表示已同步...

4)若 Slave_SQL_Running: no 请重复执行以下内容,直至yes:

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

参考的资料:

  1、https://blog.csdn.net/envon123/article/details/76615059
  2、https://blog.csdn.net/xiaoxinla/article/details/7679578

转载于:https://www.cnblogs.com/merely/p/9714827.html

linux下mysql主从复制搭建相关推荐

  1. lnmp mysql主从_LNMP linux下mysql主从复制 _好机友

    mysql主从复制主要作用是为了降低主服务器mysql的读压力. 文章背景: 1.在本地搭建两个linux虚拟机,其主服务器ip为192.168.0.1,从服务器ip为192.168.0.2. 2.主 ...

  2. linux 数据库数据同步,linux下mysql主从复制,实现数据库同步

    运行环境: 查看linux版本命令:lsb_release -a 主服务器:centos release 6.5 mysql 5.6.10-log  IP:172.17.200.25 从服务器:cen ...

  3. Linux下mysql主从复制配置(CentOS7)

    主从复制需要注意: 1.数据库版本必须一致 2.数据库名称必须一致   例如db888 3.配置主数据库开启二进制日志 4.主数据库.从数据库必须具有一个唯一的server-id 配置主从数据库复制: ...

  4. mysql主从复制中间件_linux下mysql主从复制(第二篇读写分离) mycat 中间件

    linux下mysql主从复制(第二篇读写分离) mycat 中间件 接着上篇文档补全,mysql 读写分离,在上篇文章案例下准备好Mycat-server-1.4-release-201510192 ...

  5. 【MySQL】基于Docker的Mysql主从复制搭建

    基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...

  6. linux下mysql乱码_linux下mysql中文乱码

    登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...

  7. linux mysql常用基本操作,Linux下MySQL数据库常用基本操作 一

    Linux下MySQL数据库常用基本操作 一 0.登录数据库 mysql -u root -p 1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 ...

  8. php linux下开发教程,linux下php环境搭建教程_后端开发

    linux下php环境搭建要领:起首猎取PHP.Apache以及MySQL装置包:然后装置Apache,并修正设置文件httpd.conf:接着装置MySQL,并做基础设置:末了装置PHP,并设置ph ...

  9. 关于Linux下MySql集群同步(主从、一主多从、主从从)部署及同步策略的一些笔记

    写在前面 和小伙们分享一些Mysql集群主从同步相关的笔记 博文内容涉及: 为什么需要mysql集群主从同步 主从同步原理 部署不同主从结构的Mysql集群 同步使用的复制模式介绍配置 理解不足小伙伴 ...

最新文章

  1. 阿里跳槽拼多多,80万年薪涨到160万,值不值得去?
  2. 学历案与深度学习电子书
  3. 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
  4. mysql5.5 datetime默认值不能为NOW或者CURRENT_TIMESTAMP
  5. mysql set类型 查询,MYSQL SET字段类型怎么查询
  6. 开源音乐播放器_如何选择开源音乐播放器
  7. 备案 前置或专项审批的内容
  8. kinect二次开发_Kinect2.0动作捕捉Super Mocap K2
  9. 什么是域名系统DNS
  10. Android aab打包报错(持续更新中~),android插件开发过时
  11. 如何设置浏览器标签图标
  12. linux kde vga参数1366,Archlinux+KDE 下双屏VGA高分辨率设置
  13. Numpy中数据的常用的保存与读取方法
  14. 老男孩python 2018最新_2018最新老男孩全栈python第3期视频教程 完整版 附源码与笔记 | 52download...
  15. 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
  16. cudnn 版本查看
  17. Python——函数练习题
  18. FPS手游逆向分析--------矩阵
  19. Mac 删除当前目录下所有.DS_Store文件
  20. Android核心破解原理详解

热门文章

  1. AI一分钟 | “钢铁侠”马斯克冒冷汗直面跳票尴尬;Apollo2.0确定下个月初出征美国,李彦宏发力全球梦
  2. 颜值绝绝子的swagger-ui
  3. 如何轻松搞定 CRUD 的创建人、修改人、时间等字段的赋值
  4. 分库分表:如何做到永不迁移数据和避免热点?
  5. 动态代理竟然如此简单!
  6. 为什么 HashMap 加载因子一定是0.75?而不是0.8,0.6?
  7. KDD'20 Workshop 来了!学术竞赛,发表Paper,针对疫情设计隔离策略
  8. Datahwhale第三期集训团队成员
  9. 删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!
  10. 100%抄袭!ICLR 2022投稿竟公然剽窃两篇顶会,程序主席放「实锤」严词拒稿