您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > MySQL5主从复制成功安装
MySQL5.5主从复制成功安装记录操作系统环境:CentOS5.61.MySQL主从流程图2.MySQL主从说明a.主服务器一定要开启二进制日志文件.b.MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出STARTSLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOWPROCESSLIST的输出中的BinlogDump线程。从服务器I/O线程读取主服务器BinlogDump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。3.主机信息mysql(主):192.168.96.12mysql(备):192.168.96.24.在主机跟备机上安装mysql这里使用的是mysql5.5的源码安装.5.配置主机上的my.cnf文件.[mysqld]server-id=1#服务的唯一标识符log-bin=mysql-bin#开启二进制日志,默认路径在data/下binlog_format=mixed#二进制文件的格式#这里有3种格式#binlog_format=statement将主库输入的SQL语句,直接写入二进制文件中#binlog_format=row将主库修改的行写入二进制文件中#binlog_format=mixed以上二种的混合模式#在不同二进制格式下,对存储过程,函数,触发器,事件的数据复制可以参考《mysql5.5主从复制(触发器,函数,存储引擎,事件处理)说明》#地址:=========下面参数,在本次实验中,不配置=================================replicate-do-db=test#需要复制的数据库(在这个试验中,我不用这个参数)replicate-ignore-db=mysq#不需要复制的数据库(在这个试验中,我不用这个参数)replicate-ignore-db=information_schema#不需要复制的数据库(在这个试验中,我不用这个参数)#不使用replicate-do-db,replicate-ignore-db参数就代表全库都复制#====================================================================================启动mysql(主)6.在主库上面添加一个复制帐号.GRANTREPLICATIONSLAVEon*.*to'mark'@'%'identifiedby'mark'WITHGRANTOPTION;7.配置备机的my.cnf文件server-id=2#修改成2.启动mysql(备)#====下面只做讲解,不包含在本次实验中======================================当然,备机上也能开启二进制文件.但在默认情况下.主库复制过来的数据不会写入备库的二进制文件中.所以如果想A--B--C这样的复制.必须有logs-slave-updates=1[mysqld]log-bin=mysql-binbinlog_format=mixedlogs-slave-updates=1#======================================================================8.备机连接主机a.先查看当前主机二进制的位置mysqlshowmasterstatus;b.在备机上执行命令连接主机mysqlchangemastertomaster_host=192.168.96.12,master_port=3306,master_user=mark,master_password=mark,master_log_file=mysql-bin.000004,master_log_pos=107,master_connect_retry=10;c.备机上启动IO线程和SQL线程mysqlstartslave;d.在备机上查看主从状态mysqlshowslavestatus\G9.测试主从复制在主机上创建一个alex的数据库.主机:备机:到这里,主从配置完成10.主从复制几个非常重要的文件a.master.info用于记录连接到哪个服务器,账号和密码还有记录复制到主服务器的哪个二进制文件和复制到二进制文件的哪个位置从服务器的IO线程会先把所有的从主服务复制过来的数据全部都放到relay-log.info里面。并且记录复制到的位置.IO线程只管复制其余的行可以去看官方文档,上面有详细的介绍b.relay-log.info这个是在从服务器的中续日志,记录了写了多少数据到从服务里面../ip_lb-relay-bin.000002#中继日志的位置336#复制到哪一行mysql_bin.000004#这个中继日志中对应主服务器2进制的log的文件名190#对应的位置特别注意,这里的如果复制到某一句有错,之后的二进制SQL就不会在继续复制了这里的mysql_bin.000004190会在中继日志中有记录的.SQL线程读取中序日志里面的信息,由relay-log.info信息记录.11.从服务器复制信息mysqlshowslavestatus\G[plain]viewplaincopyprint?1.***************************1.row***************************2.Slave_IO_State:Waitingformastertosendevent#IO的线程的状态3.Master_Host:192.168.96.12#链接主服务器的IP4.Master_User:mark#主服务器用户名5.Master_Port:3306#主服务器密码6.Connect_Retry:10#主从断开后,多少秒重新链接7.Master_Log_File:mysql-bin.000004#从服务器I/O线程当前读取的主服务器二进制日志文件的名字8.Read_Master_Log_Pos:190#从服务器I/O线程从当前的主服务器二进制日志中读取的位置起点。9.Relay_Log_File:ip_lb-relay-bin.000002#从服务器SQL线程当前读取并执行的中继日志文件的名字10.Relay_Log_Pos:336#从服务器SQL线程当前从中继日志中读取执行的位置起点。11.Relay_Master_Log_File:mysql-bin.000004#从服务器中的SQL进程中正在执行的语句的位置12.Slave_IO_Running:Yes#从服务器的IO线程运行是否开启13.Slave_SQL_Running:Yes#从服务器的SQL线程运行是否开启14.Replicate_Do_DB:#主从复制的数据库名15.Replicate_Ignore_DB:#主从不需要复制的数据库名16.Replicate_Do_Table:#主从复制的表17.Replicate_Ignore_Table:#主从不需要复制的表18.Replicate_Wild_Do_Table:#可以跨库复制的表19.Replicate_Wild_Ignore_Table:#不能跨库复制的表20.Last_Errno:0#最后复制的错误号...0表示没有错误21.Last_Error:#最后复制的错误信息22.Skip_Counter:0#最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值。(这个值表示跳过多少个事件在来执行SQL)23.Exec_Master_Log_Pos:190#SQL线程执行到主服务器log-bin文件的位置.如果这个值与Read_Master_Log_Pos一样.则可以证明24.Relay_Log_Space:492#所有原有的中继日志结合起来的总大小。25.Until_Condition:None#在STARTSLAVE语句的UNTIL子句中指定的值26.Until_Log_File:#在STARTSLAVE语句的UNTIL子句中指定的值27.Until_Log_Pos:0#在STARTSLAVE语句的UNTIL子句中指定的值28.Master_SSL_Allowed:No#这些字段显示了被从属服务器使用的参数。这些参数用于连接主服务器。29.Master_SSL_CA_File:30.Master_SSL_CA_Path:31.Master_SSL_Cert:32.Master_SSL_Cipher:33.Master_SSL_Key:34.Seconds_Behind_Master:0#本字段是从属服务器“落后”多少的一个指示。当从属SQL线程正在运行时(处理更新),35.#本字段为在主服务器上由此线程执行的最近的一个事件的时间标记开始,已经过的秒数。36.#当此线程被从属服务器I/O线程赶上,并进入闲置状态,等待来自I/O线程的更多的事件时,本字段为零。37.#总之,本字段测量从属服务器SQL线程和从属服务器I/O线程之间的时间差距,单位以秒计。38.#如果主服务器和从属服务器之间的网络连接较快,则从属服务器I/O线程会非常接近主服务器,39.#所以本字段能够十分近似地指示,从属服务器SQL线程比主服务器落后多少。40.#如果网络较慢,则这种指示不准确;从属SQL线程经常会赶上读取速度较慢地从属服务器I/O线程,41.#因此,Seconds_Behind_Master经常显示值为0。即使I/O线程落后于主服务器时,也是如此。42.#换句话说,本列只对速度快的网络有用。43.#即使主服务器和从属服务器不具有相同的时钟,时间差计算也会起作用(当从属服务器I/O线程启动时,计算#时间差。并假定从此时以后,时间差保持不变)。44.#如果从属SQL线程不运行,或者如果从属服务器I/O线程不运行或未与主服务器连接,45.#则Seconds_Behind_Master为NULL(意义为“未知”)。46.#举例说明,如果在重新连接之前,从属服务器I/O线程休眠了master-connect-retry秒,则显示NULL,47.#因为从属服务器不知道主服务器正在做什么,也不能有把握地说落后多少。48.Master_SSL_Verify_Server_Cert:No49.Last_IO_Errno:050.Last_IO_Error:51.Last_SQL_Errno:052.Last_SQL_Error:53.Replicate_Ignore_Server_Ids:54.Master_Server_Id:155.1rowinset(0.00sec)
本文标题:MySQL5主从复制成功安装
链接地址:https://www.777doc.com/doc-2889258 .html