MySQL(Mariadb)主从同步基础

一、准备阶段

两台linux虚拟机centos7版本,都安装了mariadb 5.5.6

进行主从同步配置:

首先防火墙要开放3306端口,

主库服务器ip:192.168.211.100

从库服务器ip:192.168.211.101

二、配置主库

1.主库上给从库ip授权

mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.211.101' identified by 'test123456';
mysql>FLUSH PRIVILEGES;

2.修改主库配置文件

设置server-id,开启binlog

vim /etc/my.cnf

添加:

log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db = study1

 

server-id:主库端的ID号;

log-bin:同步的日志路径及文件名

binlog-do-db:要同步的数据库名

设置不同步的数据库:

binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

配置好后重启mysql(mariadb)

service mariadb restart

3.查看主库状态

mysql> show master status;

 查看主服务器当前二进制日志名和偏移量,为了在从库启动后,从这个位置进行数据的恢复

三、配置从库

1.配置文件

vi /etc/my.conf

由于新版本mysql(或mariadb)有些变量不在配置文件中设置,只要添加如下:

server-id=2

replicate-do-db=study1

mysql中:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.211.100',
  MASTER_PORT=3306,
  MASTER_USER='rep1',
  MASTER_PASSWORD='test123456',
  MASTER_LOG_FILE='binlog.000007',
  MASTER_LOG_POS=245; #后面两个参数的值与主库保持一致

2.启动slave进程

mysql> slave start;

3.查看从库状态

若显示:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

则成功

四、同步数据

主库操作:

1、停止主库的数据更新操作

mysql>flush tables with read lock;
2、新开终端,生成主数据库的备份(导出数据库)

[root@lsx01 ~]# mysqldump -uroot -ptest123 study1 > study1.sql
3、将备份文件传到从库

[root@lsx01 ~]# scp study1.sql [email protected]:/root/
4、主库解锁

mysql>unlock tables;

从库操作:

1、停止从库slave

mysql>slave stop;
2、新建数据库study1

mysql> create database study1 default charset utf8;
3、导入数据

[root@lsx01  ~]# mysql -uroot -ptest123 study1<study1.sql
4、查看从库已有该数据库和数据

mysql> show databases;

然后进行增删改查测试即可

附录:

一、mysql下这条命令可以给其他主机此数据库所有权限:

grant all privileges on *.* to 'username'@hostname identified by 'password' with grant option;

二、将库打包出sql文件

[root@lsx02 ~]# mysqldump -uroot -p123456 study1 > study1.sql

三、远程导入sql文件

 mysql -h 192.168.211.100 -urep1 -ptest123456 study1 < study1.sql

猜你喜欢

转载自www.cnblogs.com/JiaoTou/p/10617091.html