1. 实验环境

| System | IP | Host | Desc |

|-|-|-|

| CentOS 7.4.1708 |192.168.100.101 |master|mysql-8.0.12-1.el7.x86_64.rpm-bundle.tar|

| CentOS 7.4.1708 |192.168.100.102 |slave|mysql-8.0.12-1.el7.x86_64.rpm-bundle.tar|

2. 安装MySQL8

使用官方整合包安装Mysql8

3. 配置主从复制

要想将主节点配置为使用基于二进制日志的复制,必须确保启用了二进制日志记录,并建立唯一的服务器ID

[root@master ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql # 这是数据存放的路径
socket=/var/lib/mysql/mysql.sock # 这是监听的套接字
log-error=/var/log/mysqld.log # 日志输出的路径
pid-file=/var/run/mysqld/mysqld.pid # pid存放的路径
log-bin=on # 开启二进制日志
server-id=1 # 服务器id为1
[root@slave ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id=2

主节点server-id为0:拒绝来自从节点的任何连接

从节点server-id为0:拒绝连接到主节点

4. 配置复制用户

创建一个只能复制的用户。

mysql> CREATE USER 'repl'@'192.168.100.101' IDENTIFIED BY 'MyNewPass4!';
Query OK, 0 rows affected (0.02 sec) mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.100.101';
Query OK, 0 rows affected (0.06 sec) mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

5. 数据的同步

我这里使用的是全新的配置,是没有任何数据的。如果在生产环境中添加新的从节点,你可能需要手动将主节点的数据进行备份,然后导入到从节点,再进行主从复制的配置。(因为可能导致复制失败,并再备份数据的时候,你可能需要锁定,使其无法写入数据。)

# 这条命令会阻止对所有表的写入操作,但当前客户端断开,则会释放锁定
mysql> FLUSH TABLES WITH READ LOCK;
# 这条命令进行解锁
mysql> UNLOCK TABLES;
# 这条命令是确定当前二进制日志文件的名称和位置。
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 | 866 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6. 配置从节点

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.100.101', # 主节点地址
MASTER_USER='repl', # 主节点用户
MASTER_PASSWORD='MyNewPass4!', # 主节点密码
MASTER_LOG_FILE='binlog.000002', # 二进制日志文件
MASTER_LOG_POS=866; # 二进制日志位置
Query OK, 0 rows affected, 2 warnings (0.05 sec) mysql> START SLAVE;
Query OK, 0 rows affected (0.04 sec) mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.100.101
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 866
Relay_Log_File: slave-relay-bin.000003
Relay_Log_Pos: 319
Relay_Master_Log_File: binlog.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 866
Relay_Log_Space: 691
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: aa8d6cc4-5f26-11e9-b7d7-000c29999aa1
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key: 0
1 row in set (0.00 sec)

7. 测试主从复制

# 主节点
mysql> CREATE DATABASE REPL;
Query OK, 1 row affected (0.04 sec)
# 从节点
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| REPL |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)

最新文章

  1. 关闭selinux
  2. bzoj 1001狼抓兔子(对偶图+最短路)最大流
  3. iOS编程中遇到的问题
  4. 一道 google曾出过的笔试题:编程实现对数学一元多项式的相加和相乘操作(1)
  5. Mat 转 IplImage
  6. Linux: Set OR Change The Library Path
  7. JQM[jquery mobile] 实战经验汇总
  8. 2015年第13本(英文第9本):Murder on the Orient Express 东方快车谋杀案
  9. HTTP长连接短连接
  10. [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}
  11. 图片在父元素中上下居中(vertical-align的有效性)
  12. DEDE首页会员部分,后台登陆,会员登录相关页面
  13. 使用源代码安装lnmp
  14. 鹿定制|Lu Couture|鹿定制·高级西装礼服私享定制品牌|芙蓉中路明城国际1425
  15. Hive实现oracle的Minus函数
  16. PHP迭代与递归实现无限级分类
  17. CodeForces-748C
  18. postman(九):postman接口测试脚本集成到jenkins
  19. 区间dp之四边形不等式优化详解及证明
  20. 使用QML绘制界面

热门文章

  1. node.js中path路径模块的使用
  2. 主机性能监控之wmi 获取进程信息
  3. SPARK安装三:SPARK集群部署
  4. 深入理解JVM(一)编译openJDK
  5. input实现图片或视频上传(样式+代码)
  6. 学以致用十九-----shell脚本之引号
  7. 关于wifi网络基本原理了解
  8. html 基本用法
  9. Git学习篇之git remote add origin错误
  10. 统计C/C++代码行数