1、环境
centOS 6.2、mysql
2、主从复制操作步骤
2.1、配置master
1)将配置选项添加到my.cnf以配置master
2)重启master的msyql使配置生效。[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql port=3306 log-bin=master-bin //二进制日志产生的所有文件的基本名 log-bin-index=master-bin.index //二进制索引文件的文件名 server-id=1 服务器ID
3)在master上创建一个复制用户
注:my.cnf的默认路径是/etc/my.cnf,如果不是且忘记my.cnf路径,可用find命令来查找create user repl_user; //创建新用户 grant replication slave on *.* To repl_user identified by ‘123456’; //为新用户添加复制权限
2.2、 配置slavefind / -name my.cnf
1)添加选项到my.cnf文件来配置slave
2)重启slave使配置生效。[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql port=3306 basedir=/usr server-id=2 relay-log-index=slave-relay-bin.index //relay-log-index的默认值是hostname-relay-bin.index relay-log=slave-relay-bin //relay-log的默认值是hostname-relay-bin //使用默认值有个问题,即一旦服务器的主机名改变,将会因为无法找到中继日志索引文件而认为中继日志文件为空
2.3、 连接master和slave将slave指向master,让它知道从哪里进行复制。为此需知道master的四部分信息:
3、无法主从复制的各种情况及解决办法在slave上执行以下命令:主机名
端口号
master上拥有replication slave权限的用户账户
该用户的密码
2.4、 在防火墙打开端口change master to Master_host = ‘master-1’, Master_port = 3306, Master_user = ‘repl_user’, Master_password = ‘123456’; start slave;
在防火墙中开放3306端口
或者直接在防护墙配置文件/etc/sysconfig/iptables里面改。iptables -A INPUT -p tcp --dport 21 -j ACCEPT
上述步骤做完之后用 show slave status \G 命令来查看slave状态,如果slave_IO_Running和slave_SQL_Running都为YES时,主从两机连接成功。