问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

4台服务器,4个网站mysql数据库,如果实时同步?

发布网友 发布时间:2022-04-23 18:59

我来回答

3个回答

热心网友 时间:2022-04-09 11:57

查找MYSQL主从同步方案,
已经很成熟的方案了,一主,多从,主服务器负责写入,从服务器只读。

mysql主从方案主要作用:

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

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

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

准备工作。先分别安装两台MYSQL(主服务器:192.168.84.137,从服务器:192.168.84.130)

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

server-id = 1

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

expire_logs_days= 10

max_binlog_size = 100M

binlog_do_db = study #要备份的数据库

#binlog_do_db = backup #要备份的数据库

#binlog_ignore_db= test #不需要备份的数据库

其中,虽然作为主机,但server-id不是必须为1.但一般都填1

binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加DB的话,就增加相应的一行。(最好写在从库配置)

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

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

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000001 | 1087 | study,backup | test

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

1 row in set (0.00 sec)

mysql> show variables like "%log%";

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

在master上为slave建立用户

mysql> grant replication slave on *.* to 'replication'@'192.168.84.130' identified by '123456';

这样,主机配置完毕。

配置slave

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

#log_bin = /var/log/mysql/mysql-bin.log #slave的binlog就没有必要再开启了。注释掉。

master-host = 192.168.84.137 #master的IP

master-user = replication #上面操作中,建立的用户名

master-password = 123456 #上面操作中,建立的密码

配置生效后,配置与master的连接:

mysql> CHANGE MASTER TO

-> MASTER_HOST='192.168.84.137',

-> MASTER_USER='replication',

-> MASTER_PASSWORD='123456',

-> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=1087;

其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息

slave:mysql> show slave status/G;

#很多很多列

======================================================================================================

到此,可以做一些检测性的东西:

有三个地址必须调试成功,

1 从库连接主库进行测试: mysql -h192.168.84.137 -ureplication -p123456 此处必须连接成功

2 show master status;必须有相关显示

3 show slave status;

必须为

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果Slave_IO_Running为No,可以考虑执行下面的语句,根据实际进行修改。

SLAVE STOP;

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=实际Position;

SLAVE START;

此时Slave_IO_Running应该恢复为Yes,同步进行了!

如果Slave_IO_Running仍然为No,则可以考虑重新启动mysql

==================================================================================================

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

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

slave:mysql> stop slave; #停掉slave的复制先。

master:mysql> flush tables with read lock; #锁掉master服务器的所有表,禁止写入。

master:mysql> show master status; #还是上面的语句,查看并记录下 File mysql-bin.000002, Position 1087

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000001 | 1087 | study | test |

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

1 row in set (0.00 sec)

chluo@master:~$ mysqlmp -uroot -pxl study > study.sql #在命令行中导出DB的数据,这里是bash操作:)

master:mysql> unlock tables; #导出完成之后,解锁。 master可以继续跑起来了。

chluo@master:~$ scp study.sql root@192.168.84.130:/ #将导出的sql传送到从服务器

chluo@slave:/$ mysql -uroot -pxl study < study.sql #在slave的命令行中导入DB的数据,这里又是bash操作:)

slave:mysql> start slave;
数据的拷贝简单来说就是主从服务器上要同步的数据库结构必须是一样的

参考资料:http://blog.csdn.net/jiangfeng08/article/details/6234901

热心网友 时间:2022-04-09 13:15

要说具体点追问就是每一个mysql数据库有新数据加入,另外三台会自动采集啊,实现四个数据库的数据一模一样

热心网友 时间:2022-04-09 14:50

4个网站共用一个数据库就可以了。但是这样子没意思吧。你指望百度同时收录四个一模一样的?追问没用的话我JB瞎折腾?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 itunes11如何同步数据?步骤详解!谢谢! 两个SQL Server2008数据库如何实现跨局域网、跨服务器的数据同步? 如何从oracle数据库中把数据同步到access数据库中?要具体操作步骤,最好... 在Winform程序中如何实现数据同步更新 怎样消除黑眼圈和眼纹,有什么好办法吗? 怎么样才能去除黑眼圈,眼纹,眼纹很深,我才20多岁。 如何来创建数据同步? 如何有效的祛除黑眼圈和眼纹? 怎么办?去除黑眼圈眼袋眼纹的好方法,如何去除黑眼圈眼袋眼纹?? 黑眼圈,眼纹,眼袋怎么解决 p37-DT700+怎么同步数据 如何去除黑眼圈和眼纹 win10如何把一个用户的数据转到另一个用户上急急急!!! 怎么去除黑眼圈和眼纹,有什么好办法吗? 怎样消除黑眼圈眼纹 眼纹和黑眼圈怎么去 怎样去除眼袋眼纹黑眼圈? 怎样祛除黑眼圈,眼袋,眼纹? 如何去除黑眼圈和皱纹? 如何有效祛除黑眼圈,眼带,眼纹 属羊的人今年运气好吗? 天津智慧财税数据同步步骤 属羊今年运程怎样 2022年属羊人的全年运势如何? 属羊的今年运势怎么样? 属羊的人今年运气怎样 属羊的人今年运程 属羊的今年运势如何 今年属羊的运程如何? 属羊的今年运气怎么样? 属羊的今年运气如何 33升水等于多少斤?? 属羊的今年运程如何 33升等于多少斤 30升水等于多少斤? 属羊今年运势 30升水等于多少吨水,有换算公式吗 一升水大概等于多少斤水 一个长方体容器长6分米,宽2.2分米,高4.5分米,他的容积是多少升?如果倒入33升水,水深为多少分米? 一升水等于多少斤水啊?