原来看过MYSQL同步数据的实现,可是自己还没有动过手,今天没什么事就玩一玩,正好在旁边有另一台空电脑,都在同一个路由器下。哈哈,正好。
不过首先在找配置文件上就把我卡了好久,由于我用的是xampp安装包,在xampp/mysql/bin目录下看始终没有找到my.cnf,在c:windows目录下也没有发现,
看到的只有一个"my"的快速拨号的东西,又不是文件,怎么都打不开。后来找了好久才在网上看到说遇到这种情况需要先打开editplus,然后再从editplus里面打开这个文件,果然。。。
配置就不详说了,网上有很多,我原来也转过一篇。
今天主要是讲一下配置主从服务器需要注意的地方:
首先需要做主从的数据库必须一模一样,如果你的数据库已经运行过一段时间,建议你先删除所有的二进制日志文件,包括索引xxx.index这个文件,否则重启mysql会出错。
从服务器上已经删除掉所有的二进制日志文件,当然包括一个master.info这个文件。这个文件是用来记录主服务器上过来的日志文件和记录位置的。如果你不删除它,它还会按照之前的记录来做,所以会出问题,我在这里浪费了很多时间了。
主服务器诊断:
show processlist;显示所有的进程。
show master status;显示主服务器的日志文件和指针位置。
mysql> show master status;
+——————+———-+—————-+——————+
File Position Binlog_Do_DB Binlog_Ignore_DB
+——————+———-+—————-+——————+
mysql-bin.000001 603 videoCommunity
+——————+———-+—————-+——————+
1 row in set (0.00 sec)
mysql> show master status/G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 603
Binlog_Do_DB: videoCommunity
Binlog_Ignore_DB:
1 row in set (0.00 sec)
如上图,mysql-bin.000001是日志记录文件,603是指针位置。
从服务器(slave)上诊断:
mysql> show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
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
1 row in set (0.00 sec)
确认以上信息和主服务器是否一致。
另外,上面每个参数的意义如下:
SHOW SLAVE STATUS 返回以下信息:
-
Slave_IO_State
SHOW PROCESSLIST 输出的 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 值不空,在从服务器的错误日志中也会出现错误信息。
分享到:
相关推荐
Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩 Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩 Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩
作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。2008年开始至今一直从事Oracle/MySQL相关工作,现任易极付高级DBA,Oracle Ocm。有丰富的数据库性能调优,故障诊断经验,并且对MySQL源码有...
MySQL借助Google提供的插件,完成半同步复制模型,大家可以学习配置下
26-搭建mysql主从服务器实战数据热备-笔记 26-搭建mysql主从服务器实战数据热备-笔记
12.1: MySQL主从同步 、 主从同步模式 、 总结和答疑.docx
MySQL主从复制类型简介入门
mysql主从服务器搭建手册! 详细介绍mysql主从服务器搭建
mysql主从同步配置 mysql主从同步配置 mysql主从同步配置
多次试验总结得出。。。如有其他问题请与我联系
MySQL主从服务器数据库同步的实现.pdf
mysql主从同步配置详解、一台服务器两个mysql,本地安装两个mysql实现主从同步
mysql主从同步原理和一些主从同步出现问题解决方案,干货多多
mysql主从同步检查脚本 。主要运用于日常maysql运行主从同步状态检查。
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...
mysql主从服务器配置 一步步实现mysql的主从配置: 主服务器:192.168.1.19 从服务器:192.168.1.20 需要提供两台虚拟机作为测试。
详细描述MySQL主从同步配置过程
详细介绍windows下mysql主从同步备份步骤,简单,明了
手把手说明如何在linux下配置MySQL的主从同步,windows下同样适宜,仅与Linux系统中的MySQL配置文件名不同而已
MySQL主从服务器数据库同步的实现 (1).pdf
mysql主从同步搭建修改优化版.pdf