mysql复制
2013-06-21 01:10
7214人阅读
评论 (0)
Tags: mysqlreplication
在主库和备库创建复制账号
grant replication slave, replication client on *.* to repl@'%' identified by '123456';
配置Master的log_bin
# 二进制日志名称
log_bin = /usr/local/mysql/data/binlog/mysql-bin
# 服务器id
server_id = 100
# 二进制日志保留多少天
expire_logs_days = 7
查看Master 状态
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000005
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
配置Slave log_bin
# 二进制日志名称
log_bin = /usr/local/mysql/data/binlog/mysql-bin
# 服务器id
server_id = 200
# 中继日志位置
relay_log = /usr/local/mysql/data/mysql-relay-bin
# 将重放事件也记录到本地二进制日志中
log_slave_updates = 1
# 从库只读
#read_only = 1
# 跳过从库自动启动复制
skip_slave_start = 1
# 从库同步超时重连时间
slave_net_timeout = 60
Slave设置Master地址参数 提示:MASTER_LOG_FILE,MASTER_LOG_POS根据master状态设置
CHANGE MASTER TO MASTER_HOST = '193.168.1.110',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
Replicate_Do_DB = 'blog',
MASTER_LOG_FILE = 'mysql-bin.000005',
MASTER_LOG_POS = 120;
Slave开始复制
start slave;
查看Slave状态
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event # Slave IO线程状态
Master_Host: 193.168.1.110 # Master 地址
Master_User: repl # Master 复制账号
Master_Port: 3306 # Master 端口
Connect_Retry: 60 # 重连间隔时间
Master_Log_File: mysql-bin.000005 # IO线程正在读取的Master二进制日志的名称
Read_Master_Log_Pos: 867 # 本机IO线程读取主服务器二进制日志位置
Relay_Log_File: mysql-relay-bin.000002 # SQL线程当前读取执行的中继日志文件的名称
Relay_Log_Pos: 1030 # SQL线程读取执行中继日志的位置
Relay_Master_Log_File: mysql-bin.000005 # SQL线程执行大部分近期事件的主服务器二进制日志文件的名称
Slave_IO_Running: Yes # I/O线程是否启动并成功连接到主服务器上
Slave_SQL_Running: Yes # SQL线程是否启动
Replicate_Do_DB: # 复制的数据库列表,逗号隔开
Replicate_Ignore_DB: # 不复制的数据库列表
Replicate_Do_Table: # 复制的表的列表
Replicate_Ignore_Table: # 不复制的表的列表
Replicate_Wild_Do_Table: # 复制的表的列波,支持like条件通配符
Replicate_Wild_Ignore_Table: # 不复制的表的列波,支持like条件通配符
Last_Errno: 0 # 最后错误编号
Last_Error: # 最后错误提示
Skip_Counter: 0 # 最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值
Exec_Master_Log_Pos: 867 # SQL线程执行来自master的二进制日志最后一个事件位置
Relay_Log_Space: 1203 # 所有原有的中继日志结合起来的总大小
Until_Condition: None # 复制until条件,在stop slave,start slave(不带until)或server重启的时候会自动重置
Until_Log_File: # 复制停止的文件名
Until_Log_Pos: 0 # 复制停止的文件位置
Master_SSL_Allowed: No # SSL
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: 0 # 最后IO线程错误编号
Last_IO_Error: # 最后IO线程错误提示
Last_SQL_Errno: 0 # 最后SQL线程错误编号
Last_SQL_Error: # 最后SQL线程错误提示
Replicate_Ignore_Server_Ids: # 忽略复制服务器ID
Master_Server_Id: 100 # Master服务器ID
Master_UUID: 36167c6c-d911-11e2-84fc-0800275fc1cb # Master服务器UUID
Master_Info_File: /usr/local/mysql/data/master.info # Master服务器信息
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it # Slave SQL 执行状态提示
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: # 最后IO线程错误时间
Last_SQL_Error_Timestamp: # 最后SQL执行错误时间
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
字段太多,整理了一下
Auto_Position : 0
Connect_Retry : 60 # 重连间隔时间
Exec_Master_Log_Pos : 867 # SQL线程执行来自master的二进制日志最后一个事件位置
Executed_Gtid_Set :
Last_Errno : 0 # 最后错误编号
Last_Error : # 最后错误提示
Last_IO_Errno : 0 # 最后IO线程错误编号
Last_IO_Error : # 最后IO线程错误提示
Last_IO_Error_Timestamp : # 最后IO线程错误时间
Last_SQL_Errno : 0 # 最后SQL线程错误编号
Last_SQL_Error : # 最后SQL线程错误提示
Last_SQL_Error_Timestamp : # 最后SQL执行错误时间
Master_Bind :
Master_Host : 193.168.1.110 # Master 地址
Master_Info_File : /usr/local/mysql/data/master.info # Master服务器信息
Master_Log_File : mysql-bin.000005 # IO线程正在读取的Master二进制日志的名称
Master_Port : 3306 # Master 端口
Master_Retry_Count : 86400
Master_SSL_Allowed : No # SSL
Master_SSL_CA_File :
Master_SSL_CA_Path :
Master_SSL_Cert :
Master_SSL_Cipher :
Master_SSL_Crl :
Master_SSL_Crlpath :
Master_SSL_Key :
Master_SSL_Verify_Server_Cert : No
Master_Server_Id : 100 # Master服务器ID
Master_UUID : 36167c6c-d911-11e2-84fc-0800275fc1cb # Master服务器UUID
Master_User : repl # Master 复制账号
Read_Master_Log_Pos : 867 # 本机IO线程读取主服务器二进制日志位置
Relay_Log_File : mysql-relay-bin.000002 # SQL线程当前读取执行的中继日志文件的名称
Relay_Log_Pos : 1030 # SQL线程读取执行中继日志的位置
Relay_Log_Space : 1203 # 所有原有的中继日志结合起来的总大小
Relay_Master_Log_File : mysql-bin.000005 # SQL线程执行大部分近期事件的主服务器二进制日志文件的名称
Replicate_Do_DB : # 复制的数据库列表,逗号隔开
Replicate_Do_Table : # 复制的表的列表
Replicate_Ignore_DB : # 不复制的数据库列表
Replicate_Ignore_Server_Ids : # 忽略复制服务器ID
Replicate_Ignore_Table : # 不复制的表的列表
Replicate_Wild_Do_Table : # 复制的表的列波,支持like条件通配符
Replicate_Wild_Ignore_Table : # 不复制的表的列波,支持like条件通配符
Retrieved_Gtid_Set :
SQL_Delay : 0
SQL_Remaining_Delay : NULL
Seconds_Behind_Master : 0 # 主备延迟时间,单位秒
Skip_Counter : 0 # 最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值
Slave_IO_Running : Yes # I/O线程是否启动并成功连接到主服务器上
Slave_IO_State : Waiting for master to send event # Slave IO线程状态
Slave_SQL_Running : Yes # SQL线程是否启动
Slave_SQL_Running_State : Slave has read all relay log; waiting for the slave I/O thread to update it # Slave SQL 执行状态提示
Until_Condition : None # 复制until条件,在stop slave,start slave(不带until)或server重启的时候会自动重置
Until_Log_File : # 复制停止的文件名
Until_Log_Pos : 0 # 复制停止的文件位置
查看复制线程运行情况
SHOW PROCESSLIST \G
停止Slave复制
stop slave;