配置主从数据库数据实时同步

配置主从数据库数据实时同步

--master(主)slave(从)服务器--

1、 我们打开(主)的数据库配置文件,添加:
vi /etc/my.cnf

加入以下内容

server-id = 1------------------------------->配置服务器的服务号

log-bin =master--------------------------->指定数据库操作的日志文件

replicate-do-db= pos-------------------->指定要同步的数据库,如果有多个,请重复该行内容并修改数据库名称为对应数据库。

replicate-ignore-db= mysql-------------->指定不需要同步的数据库

replicate-ignore-db= information_schema

max_binlog_size= 500M----------------->设置日志文件得最大值,超过该值则另启文件记录日志

binlog_cache_size= 128K--------------->设置日志文件缓存大小

2.slave主机
vi /etc/my.cnf

加入以下内容(如果仅配置主从同步,红色字体部分可以不配置)

server-id = 2 ------------------------------->配置服务器的服务号

log-bin = master--------------------------->指定数据库操作的日志文件

replicate-do-db = pos-------------------->指定要同步的数据库,如果有多个,请重复该行内容并修改数据库名称为对应数据库。

replicate-ignore-db = mysql-------------->指定不需要同步的数据库

replicate-ignore-db = information_schema

max_binlog_size = 500M----------------->设置日志文件得最大值,超过该值则另启文件记录日志

binlog_cache_size = 128K--------------->设置日志文件缓存大小



2.重启mysql服务

3.创建账号(主)

登录数据库

mysql -hlocalhost -uroot -p

创建同步账号 mytest 密码为12345678的账号


mysql> grant replication slave on *.* to 'mytest'@'%' identified by '12345678';
Query OK, 0 rows affected, 1 warning (0.01 sec)


查看

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |     3648 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+


4.(从)服务器上进行配置
登录数据库

mysql -hlocalhost -uroot -p

change master to master_host='47.106.150.141',master_user='mytest',master_password='12345678',master_log_file='mysql-bin.[File]',master_log_pos=[Position];
[File]和[Position]要和主机状态显示一致
为主服务器运行show master status显示的结果,替换之后

change master to master_host='47.106.150.141',master_user='mytest',master_password='12345678',master_log_file='mysql-bin.000010',master_log_pos=16810;

最终运行,注意替换[File]和[Position]为自身服务器数据库的配置。

start slave;#开启从服务
show slave status\G #查看从服务状态,如下两个选项都为yes表明主从成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

注:Slave_IO_Running为 connecting的时候或者Slave_SQL_Running为NO

1.可能是主机ping不通
2.密码错误,
3.配置错误,请检查配置
4.防火墙是否关闭

修改配置需关闭 slave
首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值

mysql> show master status;
±---------------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±---------------------±---------±-------------±-----------------+
| localhost-bin.000094 | 33622483 | | |
±---------------------±---------±-------------±-----------------+
1 row in set (0.00 sec)

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://qingjiaqi.com/2020/11/06/2020-11-06-13-20-07

Buy me a cup of coffee ☕.