Centos7 + Mariadb主从配置

环境:

主服务器:192.168.1.143 系统 Centos7

从服务器:192.168.1.144 系统 Centos7

一、设置数据库

1.登录两台数据库创建 数据库DB1

create database DB1;

2.给root连接权限
如果不添加该权限 丛机 会一直 连接中

 grant all privileges on *.* to root@'%' identified by 'root密码' with grant option;

二、配置主库

1.编辑192.168.1.143的/etc/my.cnf

vi /etc/my.cnf

在[mysqld]下添加

#设置服务器ID,为1的表示为主服务器;如果服务器没有以下配置,添加,如果有就跳过。
server-id=1
##启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin?
##需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\
binlog-do-db=DB1
##不同步mysql系统数据库
binlog-ignore-db=mysql

2.重启服务

systemctl restart mariadb.service

3.获取file值和Position值

#登录数据库
mysql -u root -p
#查看主服务器
show master status;

出现以上类似信息

+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysql-bin?.000001 |      907 | DB1          | mysql            |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

这里记住File的值:mysql-bin?.000001和Position的值:907,后面会用到。

三、配置从库

1.编辑192.168.1.143的/etc/my.cnf

vi /etc/my.cnf

在[mysqld]下添加

#设置服务器ID除了0和1其他都是从机
server-id=2
##启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin?
##需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\
binlog-do-db=DB1
##不同步mysql系统数据库
binlog-ignore-db=mysql

2.重启服务

systemctl restart mariadb.service

3.登录丛机数据库

mysql -u root -p
#输入密码

4.停止丛机服务

slave stop;

5.配置主服务的连接信息

change master to master_host='主服务器地址',master_user='主服务器mysql用户名',master_password='主服务器mysql密码',master_log_file='上面获取的file值',master_log_pos=Position值;

改完后

change master to master_host='192.168.1.143',master_user='root',master_password='root123',master_log_file='mysql-bin?.000001',master_log_pos=907;

6.启动

slave start;

7.最后我们查看主从同步是否正常:

show slave status \G;

找到

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
都是yes 说明成功!

8.错误解决
如果Slave_IO_Running 是 No需要重置slave

slave stop;
reset slave;
--第五步命令
slave start;