mysql集群搭建如何搭建?mysql集群是什么?

TheDisguiser 2020-05-03 00:00:52 java常见问答 7672

在企业项目中,最重要的架构一定是数据库,搭建高可用MySQL 集群可以有效防止单点、备份缺失所造成的损失,那么,小伙伴们知道MySQL集群该怎么搭建吗?跟小编一起来了解了解吧。

集群搭建

1.修改相应配置

分别在三台服务器中使用如下命令修改配置文件

$ vim /etc/my.cnf

分别向三台服务器的/etc/my.cnf mysql配置文件添加如下内容:

masetrslave1slave2
server - id = 1# 主库开启binlog日志
log - bin = /var/lib / mysql / mysql - binserver - id = 2 server - id = 3

2、在主库创建复制用户

在mysql命令下输入如下命令创建一个用户供从库(slave)复制主库(master)

mysql > grant replication slave on * .*to 'test'
@ '%'
identified by
    '123456';
Query OK, 0 rows affected(0.00 sec)
mysql > flush privileges;
Query OK, 0 rows affected(0.00 sec)

3、从库关联主库

查看主库(master)状态

mysql> show master status;

输出以下信息,当然你的可以和我的不一样

mysql > show master status; +
-- -- -- -- -- -- -- -- -- + -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- - +
|
File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- - +
    |
    mysql - bin .000002 | 5141037 | | | |
    + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- - +
    row in set(0.00 sec)

以上结果:只需要看 File 和 Position,其它的两个分别是白名单和黑名单,意思为同步哪几个数据库和不同步哪几个数据库,可自行根据需求进行设置。记录以上前两个字段信息后()。

分别在两台从库(slave)上操作如下命令:

mysql > change master to master_host = '47.100.222.111', master_port = 3306
    , master_user = 'test', master_password = '123456'
    , master_log_file = 'mysql-bin.000002', master_log_pos = 5141037;
mysql > flush privileges;
mysql > slave start;

执行完毕,从库上继续执行如下语句:

mysql> show slave statusG;

输出如下信息:

** ** ** ** ** ** ** ** ** ** ** ** ** * 1. row ** ** ** ** ** ** ** ** ** ** ** ** ** *
    Slave_IO_State: Waiting
for master to send event
Master_Host: 47.100 .225 .121
Master_User: helper
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql - bin .000002
Read_Master_Log_Pos: 5141037
Relay_Log_File: slave1 - relay - bin .000003
Relay_Log_Pos: 5140628
Relay_Master_Log_File: mysql - bin .000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
    Replicate_Ignore_DB:

如果 Slave_IO_Running: 和Slave_SQL_Running: 都为YES就证明配置成功了。

Mysql集群是什么

MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,目的是为了提供容错性和高性能。

数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。

无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。

通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余

以上就是本文全部内容了,有关Java常见问答的更多详细内容,请关注我们了解吧。