前言
    MySQL 5.7.20测试主从复制
 
环境
    主库 192.168.1.59  t-xi-sonar01
    从库 192.168.1.51  t-xi-orc01
 
设定主机host文件

  

主库
[root@t-xi-sonar01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.59 t-xi-sonar01
192.168.1.51 t-xi-orc01
从库
[root@t-xi-orc01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.51 t-xi-orc01
192.168.1.59 t-xi-sonar01
 
Mysql数据库配置
    【Master-Server】

[root@t-xi-sonar01 ~]# service mysqld stop
Stopping mysqld: [ OK ]
[root@t-xi-sonar01 ~]# vim /etc/my.cnf
#Server ID,一般设置成IP地址的最后一位,如下测试就按后两位
server_id=
#开启log bin,名字最好有意义用来区分
log-bin=dev-bin
#需要进行复制的数据库,可以指定数据库
#binlog-do-db=DB_master
#不需要备份的数据库,可以设置多个数据库,一般不会同步mysql这个库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1m
#二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
expire_logs_days=
# 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
# 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=
[root@t-xi-sonar01 ~]# service mysqld start
Starting mysqld: [ OK ]
[root@t-xi-sonar01 ~]# mysql 5.7.20登陆报错解决
  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root
update user set authentication_string=PASSWORD("****") where User='root';
flush privileges; 主库创建同步账户
service mysqld start
mysql> mysql -u root -p
mysql> CREATE USER 'replication'@'192.168.1.51' IDENTIFIED BY 'slave';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.51';
mysql> flush privileges; 主库锁定后备份将资料同步到从库
mysql>use sonar
mysql>FLUSH TABLES WITH READ LOCK;
mysqldump -u root -p --databases sonar > sonar.sql
scp sonar.sql @192.168.1.51:/root
mysql> unlock tables;
[master-server]
mysql> show master status ;
+----------------+----------+--------------+---------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+---------------------------------------------+-------------------+
| dev-bin. | | | mysql,information_schema,performance_schema | |
+----------------+----------+--------------+---------------------------------------------+-------------------+
    【Slave-Server】
 

 service mysqld stop
vim /etc/my.cnf
#add slave-server
server_id=
#binlog-ignore-db=mydql
#binlog-ignore-db=information_schema
#binlog-ignore-db=performance_schema
#log-bin=dev-slave-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=
slave_skip_errors=
relay_log=dev-relay-bin
#log_slave_updates=
read_only= service mysqld start
将主库备份导入从库
mysql>source /root/sonar.sql
添加链接到主库同步复制的账户
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.59', MASTER_USER='replication', MASTER_PASSWORD='slave', MASTER_LOG_FILE='dev-bin.000001', MASTER_LOG_POS=; MASTER_LOG_FILE:指定log bin日志文件名称
MASTER_LOG_POS :指定同步复制log分区号,可以从0开始。 查看slave状态
show slave status \G Slave_IO_State #从站的当前状态
Slave_IO_Running: Yes #读取主程序二进制日志的I/O线程是否正在运行
Slave_SQL_Running: Yes #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样
Seconds_Behind_Master #是否为0,0就是已经同步了
启动slave
start slave;
mysql>     show slave status \G
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.59
Master_User: replication
Master_Port:
Connect_Retry:
Master_Log_File: dev-bin.
Read_Master_Log_Pos:
Relay_Log_File: dev-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: dev-bin.
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:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
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:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
Master_UUID: d6901902-ea28-11e7-b859-000c29255261
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay:
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count:
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
row in set (0.00 sec)
    
 
    【Master-Server】

创建table和database测试

在sonar下建立测试表
mysql> use sonar;
mysql> create table slave_t(
-> id int() not null, name varchar()
-> )
-> ;
Query OK, rows affected (1.57 sec) mysql> insert into slave_t values(,'name01');
Query OK, row affected (0.33 sec) 创建slave_db测试数据库
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> create database slave_db;
Query OK, row affected (0.17 sec)
 
    【Slave-Server】

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| slave_db |
| sonar |
| sys |
+--------------------+
rows in set (0.00 sec) mysql> use sonar;
Database changed
mysql> select * from slave_t;
+----+--------+
| id | name |
+----+--------+
| | name01 |
+----+--------+
row in set (0.00 sec)

主库上的table和database已同步复制过来
 
【命令参考】
查看主库master状态
mysql> show master status;
+----------------+----------+--------------+---------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+---------------------------------------------+-------------------+
| dev-bin. | | | mysql,information_schema,performance_schema | |
+----------------+----------+--------------+---------------------------------------------+-------------------+
row in set (0.00 sec) 查看从库主机列表
mysql> show slave hosts;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
+-----------+------+------+-----------+--------------------------------------+
| | | | | 86fff1d0-f62d-11e7-834d-000c29477dac |
+-----------+------+------+-----------+--------------------------------------+
row in set (0.00 sec) 查看bin log文件列表
mysql> show binary logs;
+----------------+-----------+
| Log_name | File_size |
+----------------+-----------+
| dev-bin. | |
| dev-bin. | |
| dev-bin. | |
| dev-bin. | |
+----------------+-----------+
rows in set (0.00 sec) 查看bin log文件的内容
mysql> show binlog events;
+----------------+-----+----------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+----------------+-----+----------------+-----------+-------------+---------------------------------------+
| dev-bin. | | Format_desc | | | Server ver: 5.7.-log, Binlog ver: |
| dev-bin. | | Previous_gtids | | | |
| dev-bin. | | Stop | | | |
+----------------+-----+----------------+-----------+-------------+---------------------------------------+
rows in set (0.00 sec) mysql> show binlog events in 'dev-bin.000004';
+----------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+----------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------+
| dev-bin. | | Format_desc | | | Server ver: 5.7.-log, Binlog ver: |
| dev-bin. | | Previous_gtids | | | |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | CREATE USER 'replication'@'192.168.1.51' IDENTIFIED WITH 'mysql_native_password' AS '*51125B3597BEE0FC43E0BCBFEE002EF8641B44CF' |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.51' |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | flush privileges |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | use `sonar`; create table slave_t(
id int() not null, name varchar()
) |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | BEGIN |
| dev-bin. | | Table_map | | | table_id: (sonar.slave_t) |
| dev-bin. | | Write_rows | | | table_id: flags: STMT_END_F |
| dev-bin. | | Xid | | | COMMIT /* xid=178006 */ |
| dev-bin. | | Anonymous_Gtid | | | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| dev-bin. | | Query | | | create database slave_db |
+----------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------+
rows in set (0.13 sec) 查看当前数据库线程列表
【master-server】
mysql> SHOW PROCESSLIST \G
*************************** . row ***************************
Id:
User: root
Host: localhost
db: mysql
Command: Query
Time:
State: starting
Info: SHOW PROCESSLIST
*************************** . row ***************************
Id:
User: replication
Host: t-xi-orc01:
db: NULL
Command: Binlog Dump
Time:
State: Master has sent all binlog to slave; waiting for more updates
Info: NULL
*************************** . row ***************************
Id:
User: sonar
Host: localhost:
db: sonar
Command: Sleep
Time:
State:
Info: NULL
*************************** . row ***************************
Id:
User: sonar
Host: localhost:
db: sonar
Command: Sleep
Time:
State:
Info: NULL
*************************** . row ***************************
Id:
User: sonar
Host: localhost:
db: sonar
Command: Sleep
Time:
State:
Info: NULL
*************************** . row ***************************
Id:
User: sonar
Host: localhost:
db: sonar
Command: Sleep
Time:
State:
Info: NULL
rows in set (0.00 sec) 【slave-server】
mysql> SHOW PROCESSLIST \G
*************************** . row ***************************
Id:
User: root
Host: localhost
db: sonar
Command: Query
Time:
State: starting
Info: SHOW PROCESSLIST
*************************** . row ***************************
Id:
User: system user
Host:
db: NULL
Command: Connect
Time:
State: Waiting for master to send event
Info: NULL
*************************** . row ***************************
Id:
User: system user
Host:
db: NULL
Command: Connect
Time:
State: Slave has read all relay log; waiting for more updates
Info: NULL
rows in set (0.00 sec) 从库启动复制
mysql> START SLAVE;
从库停止复制
mysql> STOP SLAVE;
 
参考:
 

MySQL-5.7.20主从复制测试[20180110]的更多相关文章

  1. mysql主从复制测试

    mysql主从复制测试: 1. 配置主服务器:在主库上面添加复制账号GRANT REPLICATION SLAVE on *.* to 'mark'@'%' identified by 'mark' ...

  2. MySQL+Amoeba实现数据库主从复制和读写分离

    MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...

  3. Mysql实现企业级数据库主从复制架构实战

    场景 公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公司业务中断,损失100万,老王做出深刻反省,公司 ...

  4. 项目实战7—Mysql实现企业级数据库主从复制架构实战

    Mysql实现企业级数据库主从复制架构实战 环境背景:公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公 ...

  5. MySQL/MariaDB数据库的主从复制

     MySQL/MariaDB数据库的主从复制  作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL复制概述 1>.传统扩展方式 垂直扩展(也叫向上扩展,Sacle ...

  6. mysql -- mysql基于ssl的主从复制

    mysql基于ssl的主从复制由于mysql在复制过程中是明文的,所以就大大降低了安全性,因此需要借助于ssl加密来增加其复制的安全性. 主服务器node1:172.16.200.1从服务器node2 ...

  7. linux下mysql基于mycat做主从复制和读写分离之基础篇

    Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...

  8. 1、MySql的安装和连接测试并给root用户赋密码

    一.mysql数据库的安装 Windows下MySQL的配置 以 MySQL 5.1 免安装版为例, 下载 mysql-noinstall-5.1.69-win32.zip ( 官方下载页: http ...

  9. 使用sysbench 0.5 对mysql 进行性能、压力测试

    sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.目前sysbench代码托管在launchpad上,项目地址:https://launc ...

随机推荐

  1. csharp: ClientScript.RegisterStartupScript int net4.0

    //彈出提示 ClientScriptManager cs = Page.ClientScript; StringBuilder sb = new StringBuilder(); sb.Append ...

  2. solidity语言8

    输入参数 pragma solidity ^0.4.16; contract Simple { function taker(uint _a, uint _b) public pure { // do ...

  3. checkpoint(sqlserver数据库检查点)

    关于检查点的解释:   出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘.相反,数据库引擎定期发出对每个数据库的检查点命令.“检查点”将当前内存 ...

  4. day5-基础 函数

     函数 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序 ...

  5. 团队合作学习scrum

    查找资料学习scrum心得: 什么是scrum : scrum是一种轻量级软件开发方法,即一种做事的方法.scrum原本是指橄榄球运动的一个专业术语,原意为团队通力合作,在场地内传球.这个过程需要认真 ...

  6. luogu P3787 冰精冻西瓜

    嘟嘟嘟 好题,好题…… 看这个修改和询问,就知道要么是求完dfs序后线段树维护,要么是树剖.又因为这道题都是子树的操作,没有链上的,所以线段树就够了. 然而重点不是这个.这道题最麻烦的是线段树push ...

  7. 2017.9.1 Java中的程序方法

    今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 * ...

  8. sublime重构变量

    选中变量后按下Ctrl+D可批量修改变量名

  9. [luoguP4306][JSOI2010]连通数

    \[Yeasion\] \[Nein\] 其实我很奇怪为什么我的正解和输出\(N \times N\)的效果是一样的.....嗯,大概是\(RP\)问题吧.... 嗯首先来看一下题目: 题目描述: 度 ...

  10. android:TableLayout表格布局详解

    http://blog.csdn.net/justoneroad/article/details/6835915 这篇博文包括的内容:1.TableLayout简介2.TableLayout行列数的确 ...