mysql主从整套方案_[转]Mysql主从方案介绍

本文介绍MySQL主从配置的详细步骤,包括读写分离、不同表引擎的优势互补、热备等,通过具体实例展示了如何设置Master和Slave节点,实现数据的高效同步。

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

来源: http://www.luochunhui.com/id/550

mysql主从方案主要作用:

读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

发扬不同表引擎的优点。目前Myisam表的查询速度比innodb略快,而写入并发innodb比myIsam要好。那么,我们可以使用innodb作为master,处理高并发写入,使用master作为slave,接受查询。或在myisam

slave中建立全文索引,解决innodb无全文索引的弱点。

热备,slave和master的数据“准实时”同步。

准备工作。先分别安装两台MYSQL

配置MASTER。找到my.cnf文件,修改:

1

server-id       =

1

2

log_bin

= /var/log/mysql/mysql-bin.log

3

expire_logs_days    = 10

4

max_binlog_size

= 100M

5

binlog_do_db

= DB_AdidasFootball

6

binlog_do_db

= DB_CodeBuilder

7

binlog_ignore_db

=test

其中,作为主机,server-id必须为1.

binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加DB的话,就增加相应的一行。

重启master数据库,运行检查:

01

mysql> show master

status;#检查是否以master形式启动了。

02

+------------------+----------+----------------------------------+------------------+

03

|

File

| Position |

Binlog_Do_DB

| Binlog_Ignore_DB |

04

+------------------+----------+----------------------------------+------------------+

05

| mysql-bin.000002 |     1087 |

DB_AdidasFootball,DB_CodeBuilder |test             |

06

+------------------+----------+----------------------------------+------------------+

07

1 rowin set (0.00

sec)

08

09

mysql> show variables

like"%log%";

10

#需要看到这样的一行,说明binlog已经开启了: log_bin | ON

在master上为slave建立用户

1

mysql>grant replication

slave, reload, superon *.*to 'slave'@'10.*'identifiedby '123456';

这样,主机配置完毕。

配置slave

1

server-id       =

2#随便什么数字,多台slave注意不能为重复就可以了。

2

#log_bin        =

/var/log/mysql/mysql-bin.log

#slave的binlog就没有必要再开启了。注释掉。

3

master-host

=

192.168.0.3#master的IP

4

master-user

=

slave#上面操作中,建立的用户名

5

master-password

=

123456#上面操作中,建立的密码

重启slave, 检查salve状态

1

slave:mysql> show slave status;

2

#很多很多列

接下来,将主机数据 copy 过来

这个流程比较复杂:)各个步骤注意所在的机器

01

slave:mysql> stop

slave;#停掉slave的复制先。

02

03

master:mysql> flush tables

withread lock;#锁掉master服务器的所有表,禁止写入。

04

05

master:mysql> show master

status;#还是上面的语句,查看并记录下

File mysql-bin.000002, Position 1087

06

+------------------+----------+----------------------------------+------------------+

07

|

File

| Position |

Binlog_Do_DB

| Binlog_Ignore_DB |

08

+------------------+----------+----------------------------------+------------------+

09

| mysql-bin.000002 |     1087 |

DB_AdidasFootball,DB_CodeBuilder |test             |

10

+------------------+----------+----------------------------------+------------------+

11

1 rowin set (0.00

sec)

12

13

chluo@master:~$ mysqldump AdidasFootball >

AdidasFootball.sql#在命令行中导出DB的数据,这里是bash操作:)

14

15

master:mysql> unlock

tables;#导出完成之后,解锁。

master可以继续跑起来了。

16

17

chluo@slave:~$ mysql AdidasFootball <

AdidasFootball.sql#在slave的命令行中导入DB的数据,这里又是bash操作:)

18

19

slave:mysql> change master to

20

->

master_log_file='mysql-bin.000002',#将这里修改为刚记录下来的数据

21

->

master_log_pos=1087;#还有这里

22

23

slave:mysql> start slave;

完成。

注意事项

从机必须有其需要的数据库,才能够进行同步,否则会忽略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值