同机MySQL数据库主从同步配置方案
1、配置主库my.ini
port=3306
datadir=”C:/Program Files/MySQL/MySQL Server 5.0/Data/”
server-id=1
log-bin=mysql-bin
(注:一定要启用logbin功能才能进行同步备份。如果只想对某个数据库或者某个数据库的某些表做同步,那么还需要增加binlog-do-db参数进行限制,格式:binlog-do-db = dbname)
2、配置从库my.ini
port=3307
注意:主从的datadir目录不能一样(各自的log文件在各自的data目录下)
datadir=”D:/Program Files/MySQL/MySQL Server 5.0/Data/”
server-id=2
#启用从库日志,这样可以进行链式复制
log-slave-updates
#从库是否只读,0表示可读写,1表示只读(可选项)
read-only=1
#只复制某个表(如果只想对某个数据库或者某个数据库的某些表做同步,需要选择这项)
replicate-do-table=dbname.tablename
#只复制某些表(可用匹配符。功能同上参数。)
replicate-wild-do-table=dbname.tablename%
#只复制某个库(如果对多个数据库做同步,那么可以用多行来表示。)
replicate-do-db = dbname
#只复制某些库(可用匹配符。)
replicte-wild-do-db=dbname%
#不复制某个表
replicate-ignore-table=dbname.tablename
#不复制某些表
replicate-wild-ignore-table=dbname.tablename%
#不复制某个库(如果忽略多个数据库的同步,那么可以用多行表示。)
replicate-ignore-db=mysql
#复制完的sql语句是否立即从中继日志中清除,1表示立即清除(可选项)
relay-log-purge = 1
3、设置主库 武汉百度推广
连接到主库中,创建复制用户
C:\>mysql -uroot -ppassword -P3306
mysql> grant replication slave on *.* to ‘backup’@'localhost’ identified by ‘123456′;
Query OK, 0 rows affected (0.00 sec)
锁住主库的table,以便备份数据文件到从库进行初始化
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
显示主库状态,注意记下当前二进制日志文件名和position
mysql> show master status;
+———————–+———–+——————-+————————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+———————-+————+——————-+————————+
| mysql-bin.000001 | 98 | backup | mysql |
+———————-+————+——————-+————————–+
1 row in set (0.00 sec)
4、设置从库
另外开启一个cmd,启动从库
连接到从库进行配置
C:\>mysql -uroot -ppassword -P3307
mysql> CHANGE MASTER TO
-> MASTER_HOST=’localhost’,
-> MASTER_USER=’backup’,
-> MASTER_PASSWORD=’backup’,
-> MASTER_LOG_FILE=’mysql-bin.000001′,
-> MASTER_LOG_POS=98;
Query OK, 0 rows affected (0.01 sec)
注意到这里master_log_file和master_log_pos就是前面show master status的结果。
启动复制进程
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
至此配置基本完成,在主库解开table的锁定
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
最后在从服务器中执行如下操作:
mysql>show slave status \G;
如果下面三项显示为这样,则表示已经启动正常。
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
建议:在同步之前,2台Mysql的数据库 数据要一致,就是先把要备份的数据库导入到从slave服务器上。这样可以避免同步出错。
转载自:http://hi.baidu.com/codylee/blog/item/b16acdfc197b4588b901a0a7.html