Linux下配置MySQL主从同步(不复杂,简单明了)

这篇博客详细介绍了在Linux环境下如何配置MySQL主从同步,包括准备工作、安装percona-xtrabackup、备份与恢复,以及同步配置的步骤。确保主从数据库版本一致,网络联通,并通过percona-xtrabackup进行数据备份和恢复,最后设置主从服务器的同步配置,完成MySQL主从同步的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

明人不说暗话,直接进入正题

一、准备工作

假设两个服务器IP如下:

主服务器:44.92.163.112    -Linux

从服务器:114.74.22.11     -Linux


注意:

1、主从数据库版本最好一致;

2、主从数据库内数据保持一致;

3、主从服务器要保证同步服务期间的网络联通,即ip可以相互ping通。

二、安装percona-xtrabackup 

xtrabackup是一款数据备份工具 

推荐rpm安装:https://www.percona.com/downloads/XtraBackup/LATEST/

我这里选择2.2.12版本的,Linux下64位。

 下载好后,通过xftp将安装包分别放入主服务器和从服务器目录下进行安装。

  输入命令:

[root@iz java]# yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5
[root@iz java]# yum -y install rsync perl 
[root@iz java]# rpm -Uvh percona-xtrabackup-2.2.12-1.el7.x86_64.rpm

三、备份和恢复

主服务器配置:

1、备份

    先在/tmp目录下创建一个文件夹,这里命名为backup

[root@iz java]# innobackupex --socket=/tmp/mysql.sock --user=root --password=kapphk --defaults-file=/etc/my.cnf --parallel=4 --database=passport /tmp/backup

2、保持事务一致性

#2018-09-10_11-53-17:上一条命令执行后生成的文件夹名称
[root@iz java]# innobackupex --socket=/tmp/mysql.sock --user=root --password=kapphk --defaults-file=/etc/my.cnf --database=passport --apply-log /tmp/backup/2018-09-10_11-53-17

3、传输

#在主服务器使用scp命令远程复制数据到从服务器,预先在从服务器/tmp目录下也创建一个backup文件夹
[root@iz ~]# scp -r /tmp/backup/2018-09-10_11-53-17 root@114.74.22.11:/tmp/backup

从服务器配置: 

1、恢复

#注:恢复的时候data目录不能有任何数据,所以恢复前先备份原数据库数据:
[root@iZ94byqpectZ ~]# mv /usr/local/mysql/data /tmp/data_bak

2、把主的数据导入到从

[root@iZ94byqpectZ ~]# innobackupex --socket=/tmp/mysql.sock --user=root --password=kapphk --defaults-file=/etc/my.cnf --copy-back /tmp/backup/2018-09-10_11-53-17/

3、还原从数据库原有数据

 (在/usr/local/mysql目录下新创建一个data文件夹,将data_bak下的数据库目录复制到data下即可,如:)

[root@iZ94byqpectZ ~]# cp -r /tmp/data_bak/mysql /usr/local/mysql/data

4、还原从数据库权限

[root@iZ94byqpectZ mysql]# chown -R mysql .
[root@iZ94byqpectZ mysql]# service mysqld start
[root@iZ94byqpectZ mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

5、保持从库和主库的server_id不一致

#编辑my.cnf文件,添加以下两行配置
[root@iZ94byqpectZ mysql]# vim /etc/my.cnf

#主从库的server_id值不能冲突,打开/etc/my.cnf文件,将server_id的值修改成2(如果主库的server_id=1的话)
server_id = 2
#在主从的/etc/my.cnf文件中都要加上这个属性值:sync_binlog = 1
sync_binlog = 1

6、重启数据库服务

[root@iZ94byqpectZ mysql]# service mysqld restart

四、同步配置

主服务器配置:

   主库授权于同步帐号

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_passport'@'114.74.22.11' IDENTIFIED BY 'slave_passport';
mysql> FLUSH PRIVILEGES;

从服务器配置: 

1、从库开启同步

[root@iz ~]# cat /tmp/backup/2018-09-10_11-53-17/xtrabackup_binlog_info
mysql-bin.000007	302322


mysql> CHANGE MASTER TO
    -> MASTER_HOST='44.92.163.112',
    -> MASTER_USER='slave_passport',
    -> MASTER_PASSWORD='slave_passport',
    -> MASTER_PORT=3306,
    -> MASTER_LOG_FILE='mysql-bin.000007',
    -> MASTER_LOG_POS=302322;

2、开启主从同步

mysql> start slave;

#查看从库状态
mysql> show slave status\G;

 显示如下,则开启成功!

 

 

#查看当前对应的 MySQL 帐户的运行线程
mysql> show processlist;

到此,配置完成!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值