目标:搭建两台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 '';
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '' 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=
#网络上还有如下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=
sync_binlog=

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=
#可以指定要复制的库
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='',
-> MASTER_PORT=,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=;
mysql> start slave;

3)查看状态

mysql> show slave status \G;
       Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: master
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: localhost-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test-xxx
Replicate_Ignore_DB: mysql
...
Seconds_Behind_Master: #表示已同步
...

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

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=;
start slave;

参考的资料:

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

最新文章

  1. PLS入门
  2. 试试用有限状态机的思路来定义javascript组件
  3. poi生成word文件
  4. Linux kernel map
  5. Maven:mirror和repository 区别
  6. contiki makefile框架分析 < contiki学习之一 >
  7. FFmpeg入门,简单播放器
  8. 欲练JS,必先攻CSS——前端修行之路
  9. C# 使用 ffmpeg 进行音频转码
  10. 如何回滚请求<复制系统初始的数据>所处理的数据
  11. 控制可编辑的Div 在添加图片,或者@某人的时候 光标移动到最后
  12. spring中的AOP实验(二)
  13. IntelliJ IDEA 注册码 (秘钥)
  14. java_自定义标签运行原理
  15. SpringCloud微服务架构分布式组件如何共享session对象
  16. MVC相关问题归纳
  17. clickhouse安装使用文档
  18. AngularJS中使用Karma单元测试初体验
  19. Autel MaxiSys Pro MS908P Software Update Gudie
  20. golang 字符串截取

热门文章

  1. springMVC学习(注解实现依赖注入)
  2. struts2从浅至深(五)上传与下载
  3. OpenGL中的矩阵相乘
  4. 对SpringDAO层支持的总结
  5. SQL 数据库开发一些精典的代码(转自 咏南工作室)
  6. Android Sqlite 增删改查
  7. Quartz.net 的 FAQ
  8. jenkins调用本地搭建sendmail邮件服务器发送邮件
  9. [ASP.NET]大文件无法上传排查经验分享
  10. Elasticsearch、Kibana Windows下环境搭建