mysql主从配置

【测试环境如下】

master端(ip为192.168.0.5):virtualbox下的ubuntu 10.0.4,mysql为5.5版本。

slave端(ip为192.168.0.3):xp系统,mysql为5.5版本。

 

【过程】

1.保证master端的防火墙对slave端ip开放3306端口(这一步可以最后做的):

#iptables -A INPUT -p tcp --dport 3306 -s 192.168.0.3 -j ACCEPT

在xp下,用mysql -u[用户名] -p[密码] -h[ip地址] ,可以试一下能不能连接。

 

2.修改master的$MYSQL_HOME$/etc/my.cnf 文件,添加内容:

server-id=1
log-bin=mysql-bin
 

3.进入mysql,给slave授予权限

mysql > GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.3' IDENTIFIED BY '123456';

这样,slave端即可用slave001,123456来配置访问master端。

 

4.master端设置读锁,读取日志文件名和偏移量;备份要同步的数据库(此处备份test);然后解锁

mysql > flush tables with read lock;

mysql > show master status;         //得到File为mysql-bin.000003, Position为1778

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     1778 |              |                  |
+------------------+----------+--------------+------------------+
 

然后用mysqldump工具导出数据文件,

mysqldump -uroot -p test > test.sql

mysql > unlock tables;

 

5.修改slave的my.ini文件

server-id=2

 

6.进入slave端的mysql

导入刚才master端备份的test.sql

mysql > source d:\test.sql      // 这里假定刚才master端导出的test.sql已经放置到了slave端的d:\test.sql

 

7.对slave端相应设置,进入slave端的mysql,

mysql >  change master to master_host='192.168.0.5';
mysql >  change master to master_user='slave001';
mysql >  change master to master_password='123456';
mysql >  change master to master_port=3306;
mysql >  change master to master_log_file='mysql-bin.000003';
mysql >  change master to master_log_pos=1778;

 

8.看一下slave端的状态是否正常。

mysql >  show slave status/G;

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.5
                  Master_User: slave001
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
 

9.测试

 进入master命令行,执行一条建表语句
 【mysql>】use test;
 【mysql>】create table cxl(`id` int(11) primary key);
 进入slave查看test库中是否有cxl表
 【mysql>】use test;
 【mysql>】show tables;
 若列表中有cxl表,说明配置主从数据库成功。

 

ps:

上面的从机是windows xp环境,slave端配置貌似只能通过类似“change master to .......”的方式进行配置。

如果从机也是linux环境,slave端配置,可以修改my.cnf的内容进行配置(未进行试验),内容例如:

server-id               = 2
master-host     =192.168.0.5
master-user     =slave0001
master-pass     =123456
master-port     =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

你可能感兴趣的:(Mysql主从)