mysql 数据同步配置
2007-12-21 15:21
549 查看
一、环境
主机:
主控机操作系统:ubuntulinuxserver
IP:192.168.5.7
MySQL版本:5.0.27
从属机操作系统:windowsxp
IP:192.168.5.146
MySQL版本:5.0.42
二、主控机的my.cnf文件与复制相关的配置
[mysqld]
#server-id=1
log_bin=/var/log/mysql/mysql-bin.log(系统默认得未改)
server-id=1
#sql-bin-update-same
binlog-do-db=metro
三、从属机的my.cnf文件与复制相关的配置
[mysqld]
server-id=2
master-user=username
master-password=password
master-connect-retry=60
read-only=1
relay-log-purge=1
replicate-do-db=metro
report-host=192.168.5.7
slave-skip-errors=all
replicate-wild-ignore-table=metro.b
在主控服务器上进行权限设置:
GRANTFILEON*.*TOus@192.168.5.146IDENTIFIEDBY'password';(192.168.5.146可以用'%'代替,表示可以从任何ip登陆)
先在主控服务器上执行:
SHOWMASTERSTATUS;
[mysqld]
server-id=2
master-user
=username
master-password=password
master-connect-retry=
60
read-only=1
relay-log-purge=1
replicate-do-db
=metro
report-host=192.168.5.7
slave-skip-errors=
all
replicate-wild-ignore-table=metro.b//不同步的表,例如discuz中的cdb_sessions表
[/code]
[/code]
mysql>slavestart;
ERROR1200(HY000):Theserverisnotconfiguredasslave;fixinconfigfileorwithCHANGEMASTERTO
出现错误,然后再执行Changemaster语句就可以解决:
在从属服务器上执行:
mysql>changemastertomaster_host='192.168.5.7',master_user='username',master_password='passwor',master_log_file='ccxy_db.000008',master_log_pos=98;
QueryOK,0rowsaffected(0.01sec)
接着执行:
mysql>slavestart;
QueryOK,0rowsaffected(0.01sec)
就可以解决.
在从属服务器上也可以设置某张或多张表的数据不进行复制,只要在my.cnf文件中添加:
replicate-wild-ignore-table=dbname.tablename
也可以限制不复制某个数据库:
replicate-ignore-db=dbname
注意:
在主服务器上设置了binlog-ignore-db就会把这些被列出来的数据库任何更改都不会写入二进制日志文件中的,若需要保留这些更改日志,请不要在主服务器上设置这个选项。而是在从属服务器的my.cnf文件中设置需要复制的数据库与不复制的数据库。
另外:使用复制功能应该根据用途不同与实际情况,考虑服务器之间的物理位置关系(指是否在同一域或同网段内等),因为网络传送会影响到你复制的速度,从而可能抵消一部分你为了提供系统响应的速度。
mysql-hlocalhost-uroot
mysql>SHOWSLAVESTATUS/G
***************************1.row***************************
Slave_IO_State:Waitingformastertosendevent
Master_Host:rep1
Master_User:rep
Master_Port:3306
Connect_Retry:60
Master_Log_File:binlog.000001
Read_Master_Log_Pos:98
Relay_Log_File:relay.000003
Relay_Log_Pos:232
Relay_Master_Log_File:binlog.000001
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
Replicate_Do_DB:
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:98
Relay_Log_Space:232
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)
可以看到,Slave_IO_Running和Slave_SQL_Running两列的值都为"Yes",这表明Slave的I/O和SQL线程都在正常运行。
至此,同步设定成功。
另外mysql6.0作为slave时,my.ini只要增加server-id=3就可以了,其他得属性可以在运行mysql>changemastertomaster_host='192.168.5.7',master_user='username',master_password='passwor',master_log_file='ccxy_db.000008',master_log_pos=98;
配置,如果多写了导致服务无法启动,可以删去,6.0做slave得我也是在windowsxp下使用得
主机:
主控机操作系统:ubuntulinuxserver
IP:192.168.5.7
MySQL版本:5.0.27
从属机操作系统:windowsxp
IP:192.168.5.146
MySQL版本:5.0.42
二、主控机的my.cnf文件与复制相关的配置
[mysqld]
#server-id=1
log_bin=/var/log/mysql/mysql-bin.log(系统默认得未改)
server-id=1
#sql-bin-update-same
binlog-do-db=metro
三、从属机的my.cnf文件与复制相关的配置
[mysqld]
server-id=2
master-user=username
master-password=password
master-connect-retry=60
read-only=1
relay-log-purge=1
replicate-do-db=metro
report-host=192.168.5.7
slave-skip-errors=all
replicate-wild-ignore-table=metro.b
在主控服务器上进行权限设置:
GRANTFILEON*.*TO
先在主控服务器上执行:
然后进入master数据库的Mysql控制台执行
//全局锁定 [code]FLUSHTABLESWITHREADLOCK;
然后进入另外一个窗口,拷贝db1下所有文件到slave数据库的var目录下
//读取相关的二进制文件和偏移量
+---------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+---------------+----------+--------------+------------------+
|mysql-bin.003|73|db1|mysql|
+---------------+----------+--------------+------------------+
记录下Position和File,然后执行
//解锁
UNLOCKTABLES;
然后配置slave数据库的my.cnf中有如下段
[mysqld]
server-id=2
master-user
=username
master-password=password
master-connect-retry=
60
read-only=1
relay-log-purge=1
replicate-do-db
=metro
report-host=192.168.5.7
slave-skip-errors=
all
replicate-wild-ignore-table=metro.b//不同步的表,例如discuz中的cdb_sessions表
然后启动slave数据库,进入mysql控制台,执行
slavestop;
CHANGEMASTERTO
->MASTER_HOST='192.168.5.7',//主服务器的IP地址
->MASTER_USER='username',//同步数据库的用户
->MASTER_PASSWORD='password',//同步数据库的密码
->MASTER_LOG_FILE='mysql-bin.003',//主服务器二进制日志的文件名,前面要求记住的参
->MASTER_LOG_POS=73;//日志文件的开始位置(前面要求记住的参数)
[/code]
[/code]
mysql>slavestart;
ERROR1200(HY000):Theserverisnotconfiguredasslave;fixinconfigfileorwithCHANGEMASTERTO
出现错误,然后再执行Changemaster语句就可以解决:
在从属服务器上执行:
mysql>changemastertomaster_host='192.168.5.7',master_user='username',master_password='passwor',master_log_file='ccxy_db.000008',master_log_pos=98;
QueryOK,0rowsaffected(0.01sec)
接着执行:
mysql>slavestart;
QueryOK,0rowsaffected(0.01sec)
就可以解决.
在从属服务器上也可以设置某张或多张表的数据不进行复制,只要在my.cnf文件中添加:
replicate-wild-ignore-table=dbname.tablename
也可以限制不复制某个数据库:
replicate-ignore-db=dbname
注意:
在主服务器上设置了binlog-ignore-db就会把这些被列出来的数据库任何更改都不会写入二进制日志文件中的,若需要保留这些更改日志,请不要在主服务器上设置这个选项。而是在从属服务器的my.cnf文件中设置需要复制的数据库与不复制的数据库。
另外:使用复制功能应该根据用途不同与实际情况,考虑服务器之间的物理位置关系(指是否在同一域或同网段内等),因为网络传送会影响到你复制的速度,从而可能抵消一部分你为了提供系统响应的速度。
mysql-hlocalhost-uroot
mysql>SHOWSLAVESTATUS/G
***************************1.row***************************
Slave_IO_State:Waitingformastertosendevent
Master_Host:rep1
Master_User:rep
Master_Port:3306
Connect_Retry:60
Master_Log_File:binlog.000001
Read_Master_Log_Pos:98
Relay_Log_File:relay.000003
Relay_Log_Pos:232
Relay_Master_Log_File:binlog.000001
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
Replicate_Do_DB:
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:98
Relay_Log_Space:232
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)
可以看到,Slave_IO_Running和Slave_SQL_Running两列的值都为"Yes",这表明Slave的I/O和SQL线程都在正常运行。
至此,同步设定成功。
另外mysql6.0作为slave时,my.ini只要增加server-id=3就可以了,其他得属性可以在运行mysql>changemastertomaster_host='192.168.5.7',master_user='username',master_password='passwor',master_log_file='ccxy_db.000008',master_log_pos=98;
配置,如果多写了导致服务无法启动,可以删去,6.0做slave得我也是在windowsxp下使用得
相关文章推荐
- solr5.5配置定时全量、增量同步索引mysql数据
- MySql主从配置文件问题详解(数据不同步解决方案)
- CentOS6.4 配置mysql服务器启动多个端口,同步单表数据
- mysql主从库同步数据配置
- 悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因?
- mysql主主-配置数据同步
- CentOS6.4 配置mysql服务器启动多个端口,同步单表数据
- MYSQL的master/slave数据同步配置
- mysql 5.5.21 window下配置主从数据同步
- solr+mysql数据同步配置
- mysql主主-配置数据同步
- MySQL主从同步配置及存量数据同步方案
- mysql的master/slave数据同步配置[转]
- MySQL主从数据同步配置
- Redis详细,config配置,win和linux下怎么玩,和mysql数据同步。
- MySQL5.6主从复制(mysql数据同步配置)
- MYSQL的master/slave数据同步配置
- solr的在mac上的安装配置以及同步mysql数据
- MySQL5.6主从复制(mysql数据同步配置)
- MySQL5.7主从复制配置,数据同步