Linux 开源数据库Mysql-10-mysql集群一主一
可以使用host文件形式作为主机得域名解析
此时实验得两台主机得hosts文件中都添加了域名解析。
主master
准备数据(验证主从同步使用)主从未建立之前得数据不会同步到备库
开启二进制日志
vim /etc/my.cnf
创建复制用户
grant replication slave,replication client on *.* to 'rep'@'192.168.159.%' identified by 'qwer1234QWER!@#$';
备份master数据库得数据
mysqldump -p'qwer1234QWER!@#$' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql.sql
将备份主机传送给备份主机等待还原
准备数据(备份之后产生的数据)
备slave
测试rep用户是否可以用
mysql -h master -urep -p'qwer1234QWER!@#$'
启动服务器序号
vim /etc/my.cnf
systemctl restart mysqld
测试备份数据库是否正常
手动同步数据
set sql_log_bin=0;
souurce /root/2022-08-04-mysql.sql
设置主服务器
change master to master_host='master',master_user='rep',master_password='qwer1234QWER!@#$',master_log_file='mysql-bin.000004',master_log_pos=154;
master_host //主服务器的主机名或者IP
master_use //授权用户
master_password //授权密码
master_log_file //主库的bin_log文件,备份时提示备份到哪个具体位置
master_log_pos //备份文件的的具体位置
启动从设备
start slave;
查看启动状态(IO-YES/SQL-YES)
show slave status\G;
show slave status\G;
*************************** 1. row ***************************//1.row现在有一个从节点
Slave_IO_State: Waiting for master to send event //这个是指Slave连接到Master的状态,就是当前IO线程的状态,MySQL主从复制线程状态转变。
Master_Host: master //主节点的地址
Master_User: rep //这个是Master上面的一个用户,用来负责主从复制的用户 ,创建主从复制的时候建立的(具有reolication slave权限)。
Master_Port: 3306 //Master服务器的端口,一般是3306。
Connect_Retry: 60 //连接尝试次数,使用change master时可以使用master-connect-retry选项指定当前值。
Master_Log_File: mysql-bin.000004 //显示当前I/O线程当前正在读取的主服务器二进制日志文件的名称,上面显示是mysql-bin.000004
Read_Master_Log_Pos: 1210 //显示当前同步到主服务器上二进制日志的偏移量,I/O线程已经读取的位置,单位是字节,上述的示例显示当前同步到mysql-bin.000004的1210偏移量位置,即已经同步了mysql-bin.000004这个二进制日志中1210KB的内容。
Relay_Log_File: 192-relay-bin.000002 //显示Slave的SQL线程当前正在读取和执行的中继日志文件的名称。
Relay_Log_Pos: 1376 //显示在当前的中继日志中,Slave的SQL线程已读取和执行的中继日志的偏移量。
Relay_Master_Log_File: mysql-bin.000004 //显示Slave中继日志同步到Master的二进制日志文件,本示例中为mysql-bin.000004。
Slave_IO_Running: Yes //显示I/O线程是否被启动并成功地连接到主服务器上,成功为Yes,否则为No
Slave_SQL_Running: Yes //显示SQL线程是否被启动,启动为Yes,否则为No。
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0 //显示Slave的SQL线程读取日志参数的的错误数量和错误消息,错误数量为0并且消息为空字符串表示没有错误;如果Last_Error值不是空值,它也会在从属服务器的错误日志中作为消息显示。
Last_Error: //同上
Skip_Counter: 0 //显示最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值,就是用于跳过Slave错误的。
Exec_Master_Log_Pos: 1210 //表示SQL线程已经执行的Relay log相对于主库二进制日志偏移量的位置。
Relay_Log_Space: 1581 //表示所有原有的中继日志结合起来的总大小,在START SLAVE语句的UNTIL子句中指定的值,Until_Condition具有以下值:Until_Condition、Until_Log_File、Until_Log_Pos。
Until_Condition: None //如果没有指定UNTIL子句,则没有值。如果从属服务器正在读取,直到达到主服务器的二进制日志的给定位置为止,则值为Master,如果从属服务器正在读取,直到达到其中继日志的给定位置为止,则值为Relay。
Until_Log_File: //用于指示日志文件名和位置值,日志文件名和位置值定义了SQL线程在哪个点中止执行。
Master_SSL_Allowed
Until_Log_Pos: 0 //同上
Master_SSL_Allowed: No //显示了从服务器是否使用SSL连接到主服务器。如果允许对主服务器进行SSL连接,则值为Yes;如果不允许对主服务器进行SSL连接,则值为No;如果允许SSL连接,但是从服务器没有让SSL支持被启用,则值为Ignored。
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key: //如果Slave使用SSL连接Master服务器,这里就会显示对应的证书和私钥信息。使用CHANGE MASTER与SSL相关的选项有:–master-ca,–master-capath,–master-cert,–master-cipher和–master-key等。
Seconds_Behind_Master: 0 //表示主从之间延迟的时间,单位是秒。就是SQL线程当前执行的binlog(实际上是relay log)中的timestamp和IO线程最新的timestamp的差值。
实质上,此字段计算Slave SQL线程和Slave i/o线程之间的时间差 (以秒为单位)。如果主节点和从服务器之间的网络连接速度较快,则Slave i/o线程非常接近主服务器,因此此字段是对从SQL线程与主服务器进行比较的后的一个很好的近似值。如果网络很慢,这不是一个好的近似;从SQL线程可能经常被从i/o线程所捕获,因此Seconds_Behind_Master通常显示值为0,即使i/o线程比主服务器慢很多。换言之,此列仅适用于快速网络。
Master_SSL_Verify_Server_Cert: No //显示是否认证Master证书。
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1 //显示主服务器的Server_id。
Master_UUID: 545e5222-11fc-11ed-baeb-000c293b0d1d
Master_Info_File: /var/lib/mysql/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:
1 row in set (0.00 sec)
返回主服务器(master)更新数据,在从服务器(slave)观察是否同步