主数据库:10.8.0.1
从数据库:122.112.246.108

三、主从配置步骤

1、确保主数据库与从数据库里的数据一样例如:主数据库里的a的数据库里有b,c,d表,那从数据库里的就应该有一个模子刻出来的a的数据库和b,c,d表

2、在主数据库里创建一个同步账号

1)每个从数据库会使用一个MySQL账号来连接主数据库,所以我们要在主数据库里创建一个账号,并且该账号要授予REPLICATION SLAVE 权限,你可以为每个从数据库分别创建账号,当然也可以用同一个!)

2)你可以用原来的账号不一定要新创账号,但你应该注意,这个账号和密码会被明文存放在master.info文件中,因此建议单独创一个只拥有相关权限的账号,以减少对其它账号的危害!)

3)创建新账号使用“CREATE USER”,给账号授权使用“GRANT”命令,如果你仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。

4)下面来创建一个账号,账号名:repl,密码:repl123,只允许192.168.1.的IP段登录,如下:

mysql> CREATE USER ‘repl’@‘192.168.1.%’ IDENTIFIED BY ‘Repl123#’;
mysql> GRANT REPLICATION SLAVE ON . TO ‘repl’@‘192.168.1.%’;

5)如果开发防火墙,可能要配置下端口,如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

主数据库配置:
关闭mysql:

systemctl stop mysqld.service

在/etc/my.cnf中:

# 日志路径及文件名
log-bin=mysql-bin
# master端ID号
server-id=1
#同步mstest,此处关闭的话,就是除不允许的,其它的库均同步。
# binlog-do-db=mstest
# 不同步mysql库
binlog-ignore-db = mysql

打开mysql:

systemctl start mysqld.service

mysql分布式数据库部署 mysql分布式数据库搭建_centos7

mysql分布式数据库部署 mysql分布式数据库搭建_mysql_02


查看主服务器状态:(注意:记录好File和Position,配置从服务器要用)

show master status;

mysql分布式数据库部署 mysql分布式数据库搭建_centos7_03


mysql分布式数据库部署 mysql分布式数据库搭建_centos7_04

从数据库配置:
关闭mysql:

systemctl stop mysqld.service

在/etc/my.cnf中:

server-id=2 值唯一
relay-log=relay-bin  记录主从同步数据多日志文件
read-only = on  从库设置只读权限
replicate-do-db = test 制定要同步多数据库

配置连接主服务器的信息(注意符号):

mysql> stop slave;
mysql> change master to
-> master_host='10.8.0.1',
->master_user='repl',
->master_password='Repl123#',
->master_log_file='master-bin.000001',
->master_log_pos=155;
mysql> start slave;

mysql分布式数据库部署 mysql分布式数据库搭建_数据库_05


查看从服务器状态:

mysql> show slave status \G;

mysql分布式数据库部署 mysql分布式数据库搭建_数据库_06


查看上面的Slave_IO_Running: Yes 和Slave_SQL_Running: Yes 2个都为yes则证明主从同步正常,如果有任一个显示NO,则证明同步有问题。可以查看数据库日志文件,里面基本上会显示出错误之处,根据错误一步一步排查,基本上都可以解决的。

接下来就可以在主数据库上删减修改,然后看看从服务器的数据。由于我这是用公司内部的硬件服务器,两边无法ping通,所以无法实现分布式,感觉特坑。公司内部的硬件服务器居然没有公网IP,竟无语嘤噎!!!!!!