Mysql配置master-slave模式
坏境:Mysql版本5.1.61,Ubuntu 11.04(64bit)
Master:192.168.0.63
Slave:192.168.0.62
1. Master配置
在主服务器上为从服务器建立一个用户:
grant replication slave on *.* to 'backup'@'192.168.0.62' identified by '123456';
(有文章指出:如果使用的是MySQL 4.0.2之前的版本,则用file权限来代替replication slave)
编辑主服务器的配置文件:/etc/mysql/my.cnf (不同linux版本可能位置不一样)
[mysqld]
server-id=1
log-bin=master-bin
binlog-do-db=test (test是需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)
binlog-ignore-db=(不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)
#bind-address=127.0.0.1 (这行需要注销,否则不允许主机外的机器连接本机器的mysql)
创建数据库
Create database test;
Create table user (id integer not null , name tinyblob not null);
Mysql> show master status\G;
*************************** 1. row ***************************
File: master-bin.000024
Position: 106 (记住 file与 position的值,后面要用到)
Binlog_Do_DB: test
Binlog_Ignore_DB:
1 row in set (0.00 sec)
ERROR:
No query specified
导出数据库,用以在 slave server中使用(当然你也可以再 slave server中创建同样的数据库及表)
Root# mysqldump -u root -p test>/root/test.sql;
2 Slave配置
编辑从服务器的配置文件:/etc/mysql/my.cnf
[mysqld]
server-id=2 (不要与master重复)
master-host=192.168.0.63
master-user=backup (即主服务器上为从服务器分配的用户名与密码)
master-password=123456
master-port=3306
master-connect-retry=60 重新连接的时间间隔
replicate-do-db=test (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)
replicate-ignore-db= (需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可)
Cope 并 create数据库
Mysql> create database test;
Mysql>exit;
Root#
Root#scp root@192.168.0.63:/root/test.sql /root/
Root#mysqldump –u root –p test<test.sql
(在从服务器上设置相关的二进制日志信息:)
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.0.63',
-> MASTER_USER='backup',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE=' master-bin.000024',
-> MASTER_LOG_POS=’106’;
mysql> start slave;
mysql> show slave status\G
会得到类似下面的列表:如果为yes表示成功。不行的的话,重启master及 slave mysql 数据库试试并检查配置文件的正确性
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.63
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000024
Read_Master_Log_Pos: 106
Relay_Log_File: b62-System-relay-bin.000018
Relay_Log_Pos: 252
Relay_Master_Log_File: master-bin.000024
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: zpj
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: 106
……..