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

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

一、准备工作

假设两个服务器IP如下:

主服务器:44.92.163.112    -Linux

从服务器:114.74.22.11     -Linux

注意:

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

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

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

二、安装percona-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]# rpm -Uvh percona-xtrabackup-2.2.12-1.el7.x86_64.rpm

三、备份和恢复

主服务器配置:

1、备份

[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命令远程复制数据到从服务器
[root@iz ~]# scp -r /tmp/backup/2018-09-10_11-53-17 [email protected]:/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 –rpf /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、重启数据库服务

[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;

到此,配置完成!

猜你喜欢

转载自blog.csdn.net/qq_37584445/article/details/82593637