1、最近一直在学习mysql的东西,恰好看到mysql如何搭建主从数据库,搜集了不少资料后大体了解了mysql主从复置的原理。如下是个人理解:mysql
举例master为主数据库,slave为从数据库。sql
2、如今咱们开始配置主从数据库:数据库
这里我准备了两台服务器,系统均为centos7,服务器的系统能够有差异;数据库的话建议你们使用统一版本的。这里个人服务器ip分别是192.168.0.109(master)、192.168.0.133(slave).centos
登陆到master的数据库,在master的数据库中创建一个备份账户:每一个slave使用标准的MySQL用户名和密码链接master。进行复制操做的用户会授予REPLICATION SLAVE权限。用户名的密码都会存储在文本文件master.info中服务器
命令以下:学习
mysql > GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.133' IDENTIFIED BY '123456';//创建root帐户,密码是123456,只容许该帐户在192.168.0.133这个ip登陆(slave的ip),授予REPLICATION SLAVE权限
mysql > flush privileges;//使权限当即生效
配置master vi /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容 server-id=1 #设置服务器id,为1表示主服务器。 log_bin=mysql-bin #启动MySQ二进制日志系统。 binlog-do-db=abc #须要同步的数据库名,若是有多个数据库,可重复此参数,每一个数据库一行 binlog-ignore-db = mysql,information_schema #忽略写入binlog的库 重启master数据库 systemctl restart mariadb //我这里安装的mysql服务端是mariadb-server
登陆master数据库,查看master状态
show master status;
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000001 | 2722 | | mysql,information_schema |
+------------------+----------+--------------+--------------------------+centos7
配置slave vi /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容 server-id=2 #设置服务器id,为2表示从服务器,这个server-id不作规定,只要主从不一致就好 log_bin=mysql-bin #启动MySQL二进制日志系统,若是该从服务器还有从服务器的话,须要开启,不然不须要 binlog-do-db=abc #须要同步的数据库名,若是有多个数据库,可重复此参数,每一个数据库一行 binlog-ignore-db = mysql,information_schema #忽略写入binlog的库,若是该从服务器还有从服务器的话,须要开启,不然不须要
重启slave数据库
systemctl restart mariadb //我这里安装的mysql服务端是mariadb-server
登陆从数据库,
change master to master_host='192.168.0.133',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=2722;//mysql-bin.000001,2722为以前master查到的状态值。
start slave;//开启从数据库
show slave status; //查看从数据库的状态
create database abc;
发现从数据库中也会出现数据库abc,说明咱们的主从数据库搭建成功啦~spa