主从数据库配置

本文详细介绍了如何配置数据库主从关系,包括在每个节点安装相同版本的数据库、主数据库和从数据库的配置、主数据库状态查看、首次同步以及使用percona-toolkit工具确保主从同步。特别提醒注意权限和mysqldump操作可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库主从配置

首先在每个要设置主从数据库的节点安装好数据库,数据库版本最好一样。

1)、主数据库配置(controller)

配置my.cnf

vi /etc/mysql/my.cnf

[mysqld]
#max_connect_errors  = 10000    加注释
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_ignore_db        = mysql

重启mysql服务

service mysql restart

2)、从数据库配置(compute)

若是要配置多个从节点则server-id 要进行修改,保证每个节点id不一致

配置my.cnf

vi /etc/mysql/my.cnf

[mysqld]
#bind-address           = 127.0.0.1    加注释
server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log
replicate_wild_ignore_table = mysql.%
replicate_wild_ignore_table = keystone.token

重启mysql服务

service mysql restart

3)、查看master是否启动

进入主数据库

mysql -uroot -p

查看主数据状态

show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000012 |   185346 |              |                  |
+------------------+----------+--------------+------------------+

启动成功会显示这个,没有显示则检查配置文件,成功后退出

quit;

4)、第一次同步主从数据库要先保证主从数据库一致

将需要的主数据库进行备份并且导入到从数据库

方法1)mysqldump -u账号 -p密码 --databases 数据库名 > 备份数据库名

例如:
mysqldump -u用户名 -p密码 --databases 需要配置到从数据库的数据库名 > db.sql

将备份数据库拷贝到从节点

scp db.sql root@172.16.17.6:~

进入从节点

ssh root@172.16.17.6

将备份数据导入从节点

mysql -uroot -p密码 < db.sql

5)、在主数据库节点上查看master状态,记录File、Position值

mysql -uroot -p

show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000012 |   185346 |              |                  |
+------------------+----------+--------------+------------------+

记录mysql-bin.000012 和 185346

6).在从节点上创建slave

a)进入数据库

mysql -uroot -p

b)停止slave

stop slave;

c)创建slave

change master to master_host=‘主数据ip’,master_port=3306,master_user=‘主数据库用户名’,master_password=‘主数据库密码’,master_log_file=‘上一步记录的File值’,master_log_pos=上一步记录的Position值;

例如:
change master to master_host='172.16.17.4',master_port=3306,master_user='用户名',master_password='密码',master_log_file='mysql-bin.000012',master_log_pos=185346;

d)启动slave

start slave;

e)查看slave状态

show slave status\G;

显示

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

则表示数据主从同步开始

7)、安装percona-toolkit 检测主从同步工具

安装工具

apt-get install percona-toolkit

检查数据库是否相同

pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=checksums.checksums --create-replicate-table h=主数据ip地址,u=主数据库用户名,p=主数据库密码,P=端口号

例如:
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=checksums.checksums --create-replicate-table h=172.16.17.4,u=用户名,p=密码,P=3306

没有报错误,并且diff一列为0则表示同步成功

注意事项

1.新装从数据库可能出现授权问题远程无法访问

a)、注释掉从节点/etc/mysql/my.cnf文件里的

#bind-address = 127.0.0.1

b)、进入从节点数据库

mysql -uroot -p

use mysql;

select host,user,password from user;

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

flush privileges;

select host,user,password from user;

2.mysqldump导出数据库失败

在运行mysqldump的节点 注释/etc/mysql/my.cnf文件里的

#max_connect_errors = 10000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值