centos7 配置mariadb10 主从数据库

假设主服务器IP 192.168.0.100,从服务器IP192.168.0.101.

1、如果数据库里有数据,请登陆mariadb执行 flush tables with read lock;,意在

主数据库只能读不能写,有助数据库备份,等备份完成后执行unlock tables;解锁。

然后将备份还原到从数据库上。(如果是空库,这条省略)

2、配置主数据库,修个mariadb配置文件vi etc/my.cnf,在[mysqld]中添加几个参数

bind-address = 192.168.0.100

server_id = 100(server_id你可以随便设置数字,这里设置IP的后三位,方便查询时

知道是从那台服务器上过来的,这个是唯一的主从服务器不能重复)

log-bin=/var/lib/mysql/master-bin (你可以用别的目录,log-bin没指定存储目录,

则是默认datadir指向的目录);

登陆mariadb执行grant replication slave on *.* to user@'192.168.0.101' identified by 'admin';

扫描二维码关注公众号,回复: 1843534 查看本文章

意思创建一个user的账号能从从服务器上登陆,并给这个账号replication slave的权限

(如果有多台从数据库可以把192.168.0.101改成192.168.0.*),

执行命令show master status;,记住File和Position的部分,后面会用到。

3、配置从数据库,修个mariadb配置文件vi etc/my.cnf,在[mysqld]中添加几个参数

bind-address = 192.168.0.101

server_id = 101

relay-log=/var/lib/mysql/relay-bin (如果不设置,默认是按主机名 + “-relay-bin”生成relay log);

4、配置主从复制登陆从服务器mariadb,依次执行一下命令 stopslave;

change master to master_host='192.168.0.101',master_user='user',master_password='admin',

master_log_file='master-bin.000005',master_log_pos=328;

start slave;

用show slave status\G查看从服务器状态,其中Slave_IO_RunningSlave_SQL_Running必须为Yes,如果不是,

需要根据提示的错误修改。

5、测试实验登陆主数据库创建一个测试表create table test (id int unsignedauto_increment primary key);,从数

据库会立刻更新。


(数据库配置文件my.cnf中还有别的关于slave的配置参数,自己可以上网查一下。这个几个是常用的:

主数据库:binlog-do-db = testDB  #需要记录进制日志的数据库,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db = mysql #不需要记录进制日志的数据

从数据库:replicate-do-db=testDB  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

replicate-ignore-db = mysql,information_schema #不需要同步的数据库

slave-skip-errors = all #过滤掉一些没啥大问题的错误

要是启用主->从->从模式,就要在中间的从节点上添加log-slave-updates=1  #启用从库日志,这样可以设置

链式复制


猜你喜欢

转载自blog.csdn.net/qooer_tech/article/details/72898802