mysql集群搭建之主从复制

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/dulinanaaa/article/details/82593462

0.准备环境,需要两台服务器,一主一从。

在我的示例中,主服务器的ip是192.168.68.3;从服务器可以参照VMWare克隆服务器,我搭建了一个192.168.68.5作为从服务器。

因为我是在上一节开启慢查询后克隆过来的服务器,所以从服务器理论上也安装了mysql的服务(到时有细节会说,有个uuid是相同的)。而自己在克隆时,原来不需要安装mysql(重新装一下linux之mysql的安装和配置),安装的的话更方便,一会改下uuid的细节就可以了。

1.主服务器配置(在192.168.68.3的机器上)

1)修改my.conf文件

在[mysqld]段添加

#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID,一般取IP最后一段
server-id=3

我起的名叫mysql-bin,到时会生成mysql-bin.000001这样的文件

server-id一般和机器ip尾数一样就行,我的是3

2)重启mysql服务

service mysqld restart

3)建立帐户并授权slave

mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456'; 

#一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

我这边为了演示,用了root账号。让从机通过主机的用户名/密码 root/root登录进入

然后刷新权限

扫描二维码关注公众号,回复: 4743938 查看本文章
mysql> FLUSH PRIVILEGES;

4)查询master的状态

mysql> show master status;

position=602这个偏移量记住,后面会用到

之前的设置中,发现在/var/lib/mysql文件夹下,已经多出了mysql-bin开头的bin log日志文件

2.主服务器配置(在192.168.68.5的机器上)

1)修改my.conf文件

[mysqld]
server-id=5

2)删除UUID文件

第0步骤的时候,说uuid的细节。如果是克隆过来的机器,在192.168.68.5(从服务器)上的/var/lib/mysql/auto.cnf

两个auto.cnf文件的uuid是一样的,这样做主从时会有错误

解决办法就是将从服务器中的auto.cnf文件给删掉,然后重启服务

看清是从服务器的

然后他会生成一个新的auto.cnf文件

3)配置从服务器

mysql>change master to master_host='192.168.68.3',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=602;

注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“602”无单引号(此处的602就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。

4)启动从服务器复制功能

mysql>start slave;

5)检查从服务器复制功能状态

mysql> show slave status;

注:Slave_IO_Running及Slave_SQL_Running进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

我们已经看到,这两个参数状态已经是yes了

3.验证

从主服务器写了一条数据,发现从从服务器中能够查询出有数据更新了。

完毕!

猜你喜欢

转载自blog.csdn.net/dulinanaaa/article/details/82593462