linux 主从同步

xiaoxiao2021-02-28  6

一、安装准备

 

 

 

主数据库:172.16.10.200

 

从数据库:172.16.10.201

 

操作系统:CentOs 64位

 

服务器类型: 虚拟机

 

 

安装数据库

 

yum install -y mysql-server mysql mysql-devel

 

初始数据库

 

service mysqld start

 

检测是否为开机启动

 

chkconfig --list | grep mysqld

 

设置成开机启动

 

chkconfig mysqld on

 

关闭防火墙

 

service iptables stop

 

 

 

二、设置主库

 

1、修改主库my.cnf,主要是设置个不一样的id和logbin

 

[root@master mysql]# vi /etc/my.cnf

 

# 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档

 

 

[mysqld]

log-bin=mysql-bin

server-id=1

binlog-do-db=app_leolaurel //需要复制的数据库,如果没有本行,即表示复制所有的数据库

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

 

 

 

server_id = 1

 

log_bin=mysql-bin

 

expire-logs-days=30binlog-do-db=yliyun

 

binlog-do-db=yliyun_log

 

binlog-ignore-db=test

 

 

2、启动主库生效

 

[root@localhost etc]service mysqld restart

 

如果是CentOS7,用这个命令:

systemctl restart mariadb

 

3、登陆主库

 

[root@localhost etc]mysql -u root -p

 

 

4、创建同步账号

 

 

grant replication slave on *.* to 'rep'@'192.168.0.22' identified by 'yliyun123';

 

 

 

mysql> grant replication slave on *.* to 'slave'@'172.16.10.201' identified by 'slave';

 

 

 

GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

 

 

 

5、检查创建是否成功(不必须)

 

select user,host from mysql.user;

 

 

 

6、显示主库信息

 

记录File和Position,从库设置将会用到

 

mysql> show master status;

 

+------------------+----------+---------------+--------------------------+

 

| File             | Position | Binlog_Do_DB  | Binlog_Ignore_DB         |

 

+------------------+----------+---------------+--------------------------+

 

| mysql-bin.000001 |      245 |  | information_schema,mysql |

 

+------------------+----------+---------------+--------------------------+

 

1 row in set (0.00 sec)

 

 

# 说明,如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。

 

 

 

三、设置从库

 

1、在201节点上修改从库my.cnf(位置一样)

 

[root@localhost etc]vi my.cnf

# 记住这部分一定要配置在[mysqld]后面,否则无法找到从节点,各个配置项的含义可自己查阅文档

 

 

 

[mysqld]

server-id=2

replicate-do-db=app_leolaurel

replicate-ignore-db=mysql

replicate-ignore-db=information_schema

master-host=172.16.10.200

master-user=slave

master-password=slave

master-connect-retry=60

 

 

 

2,

 

change master to master_host='192.168.0.21', master_user='rep', master_password='yliyun123', master_log_file='mysql-bin.000026', master_log_pos=539641;

 

 

change master to master_host='192.168.145.222',

master_user='mysync',

master_password='q123456',

master_log_file='mysql-bin.000004',

master_log_pos=308; //注意mysql-bin.000004和308是第五步中的File和

 

 

 

 

3,开启从库

mysql> start slave;//启动从服务器复制功能

 

 

4,MySQL> show slave status;或者show slave status \G;

 


 


 


主服务器配置是对的

数据库账户root, 密码rootroot

 

#replicate-do-db=app_leolaurel

#replicate-ignore-db=mysql

#replicate-ignore-db=information_schema

#master-host=192.168.1.200

#master-user=root

#master-password=rootroot

#master-connect-retry=60


 

环境:

OS:CentOS release 5.5 (Final) (64位)

 

主从同步出现一下错误:

 

Slave_IO_Running: Connecting

Slave_SQL_Running: Yes

 

解决方法:

 

导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:

 

 

1、网络不通 ping下主服务器mysql

2、密码不对 验证密码

3、pos不对 这个可以不要考虑。

 

4、用于登录的主服务器mysql的用户不支持远程。 查看用户权限  

在安装完mysql数据库的时候默认他们的server-id=1 但是在做主从同步的时候需要将ID 号码设置不一样才行。

 

4.ID问题,

 

6,双方的机器防火墙是否策略有限制。

 

我敢肯定的并且排除的两个原因

 

1. 网络原因:在从库上拷贝主库上的备份文件的时候并没有出现任何的错误,因此可以排除。

2. POS 不对:这个我也可以排除,因为在主库上 show maste status 时我记录过了 POS,所以也将这个原因排除了。

 

很显然的问题是出现在 password 上面,只是我在从库上执行

 

CHANGE MASTER TO

 

MASTER_HOST='192.168.223.101',

 

MASTER_USER='xiaoyi',

 

MASTER_PASSWORD='xiaoyi',

 

MASTER_LOG_FILE='mysql-bin.000008',

 

MASTER_LOG_POS= 261;

 

的时候 MASTER_PASSWORD='xiaoyi', 中的 'xiaoyi' 写成了 'xiaoyi ',因此导致了从库上的Slave_IO_Running: Connecting。

 

修改过后再来查看从库的状态,问题已经解决

 


 

show slave status \G;

IO线程和sql线程都已经yes,但是还是同步不过去

转载请注明原文地址: https://www.6miu.com/read-1400080.html

最新回复(0)