服务器之家

服务器之家 > 正文

mysql主从服务器同步心得体会

时间:2019-10-22 14:27     来源/作者:mysql教程网

原来看过MYSQL同步数据的实现,可是自己还没有动过手,今天没什么事就玩一玩,正好在旁边有另一台空电脑,都在同一个路由器下。哈哈,正好。

不过首先在找配置文件上就把我卡了好久,由于我用的是xampp安装包,在xampp/mysql/bin目录下看始终没有找到my.cnf,在c:windows目录下也没有发现,

如上图,看到的只有一个”my”的快速拨号的东西,又不是文件,怎么都打不开。后来找了好久才在网上看到说遇到这种情况需要先打开editplus,然后再从editplus里面打开这个文件,果然。。。

配置就不详说了,网上有很多,我原来也转过一篇。

今天主要是讲一下配置主从服务器需要注意的地方:

首先需要做主从的数据库必须一模一样,如果你的数据库已经运行过一段时间,建议你先删除所有的二进制日志文件,包括索引xxx.index这个文件,否则重启mysql会出错。

从服务器上已经删除掉所有的二进制日志文件,当然包括一个master.info这个文件。这个文件是用来记录主服务器上过来的日志文件和记录位置的。如果你不删除它,它还会按照之前的记录来做,所以会出问题,我在这里浪费了很多时间了。

主服务器诊断:

showprocesslist;显示所有的进程。

showmasterstatus;显示主服务器的日志文件和指针位置。

mysql>showmasterstatus;

+——————+———-+—————-+——————+

FilePositionBinlog_Do_DBBinlog_Ignore_DB

+——————+———-+—————-+——————+

mysql-bin.000001603videoCommunity

+——————+———-+—————-+——————+

1rowinset(0.00sec)

mysql>showmasterstatus\G

***************************1.row***************************

File:mysql-bin.000001

Position:603

Binlog_Do_DB:videoCommunity

Binlog_Ignore_DB:

1rowinset(0.00sec)

如上图,mysql-bin.000001是日志记录文件,603是指针位置。

从服务器(slave)上诊断:

mysql>showslavestatus\G

***************************1.row***************************

Slave_IO_State:Waitingformastertosendevent

Master_Host:master1

Master_User:root

Master_Port:3306

Connect_Retry:60

Master_Log_File:mysql-bin.000001

Read_Master_Log_Pos:603

Relay_Log_File:master2-relay-bin.000053

Relay_Log_Pos:740

Relay_Master_Log_File:mysql-bin.000001

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

Replicate_Do_DB:videoCommunity

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:603

Relay_Log_Space:740

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

1rowinset(0.00sec)

确认以上信息和主服务器是否一致。

另外,上面每个参数的意义如下:

SHOWSLAVESTATUS返回以下信息:

Slave_IO_State

SHOWPROCESSLIST输出的State字段的拷贝。从这里可以看出是否线程正在连接主服务器,是否正在等待来自于主服务器的事件,是否正在重新连接主服务器等信息。所有可能出现的状态管理员手册中的复制实现细节列出。这些信息是非常重要的,比如线程虽然运行但是没有成功的连接主服务器,只有这个字段能告诉用户的连接问题。由于SQL线程简单,所以它的状态没有拷贝。如果它运行,就没有问题,如果没有运行,可以在Last_Error域中找到错误(下面描述)。

Master_Host

目前主服务器主机。

Master_User

连接主服务器的当前用户。

Master_Port

当前的主服务器端口。

Connect_Retry

选项–master-connect-retry的当前值。

Master_Log_File

I/O线程当前读取的主服务器二进制日志文件的名字。

Read_Master_Log_Pos

I/O线程从当前的主服务器二进制日志中读取的位置起点。

Relay_Log_File

SQL线程当前读取并执行的中继日志文件的名字。

Relay_Log_Pos

SQL线程当前从中继日志中读取执行的位置起点。

Relay_Master_Log_File

主服务器中二进制日志文件的名字,此文件中包含了最近一次SQL线程执行的事件。

Slave_IO_Running

I/O线程是否启动。

Slave_SQL_Running

SQL线程是否启动。

Replicate_Do_DB,Replicate_Ignore_DB

如果有的话,就是以选项–replicate-do-db和–replicate-ignore-db指明的数据库列表。

Replicate_Do_Table,Replicate_Ignore_Table,Replicate_Wild_Do_Table,Replicate_Wild_Ignore_Table

如果有的话,是以选项–replicate-do-table,–replicate-ignore-table,–replicate-wild-do-table,and–replicate-wild-ignore_table指明的表的列表。

Last_Errno,Last_Error

最近执行的查询返回的错误号和错误信息。错误号是0且空的信息表示没有错误。如果Last_Error值不空,在从服务器的错误日志中也会出现错误信息。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部