❶ 三台服务器怎样实现mysql数据同步可不可以互为主从
可以一台做主机,两台做备机。
myql支持双向复制,就是互为主从。方法与主从同步一样,就是在备机上新建一个用户做主机,原来的主机做备机进行同步。
但是一般不建议互为主从,因为这样比较危险,一般主机用于数据更新,备机用于数据查询。最大效率提高数据库性能。
❷ mysql两个服务器的数据怎么同步
1. 建立VPN内部网络通信(这种方式快速一点)
2. 在需要同步的服务器上,建立连接服务器,取个名字,按照向导填写验证信息。
3. 在数据库中直接使用连接服务器上的数据,数据表格式如:连接服务器名.数据库名..表名
4. 在计划任务中也可以把服务器表数据计划更新到本地数据库表里面
❸ mysql主备之间使用什么日志文件同步
主从同步主要是以binlog日志作为文件同步机制,具体如下
主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。
使用主从同步的好处:
通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。
提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据
在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能
注意,mysql是异步复制的,而MySQL Cluster是同步复制的。有很多种主从同步的方法,但核心的方法有两种,Statement Based Replication(SBR)基于SQL语句的复制,另一种是Row Based Replication(RBR)基于行的复制,也可以使用Mixed Based Replication(MBR)。在mysql5.6中,默认使用的是SBR。而mysql 5.6.5和往后的版本是基于global transaction identifiers(GTIDs)来进行事务复制。当使用GTIDs时可以大大简化复制过程,因为GTIDs完全基于事务,只要在主服务器上提交了事务,那么从服务器就一定会执行该事务。
❹ 怎么实现两台服务器的mysql数据同步
这种架构一般用在以下三类场景
1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。
❺ 如何配置两个MySQL数据库之间的主从同步功能
IP的设置:A主机
IP:10.10.0.119;Mask:255.255.0.0;B主机
IP:10.10.8.112;Mask:255.255.0.0
在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service
iptables
status查看防火墙状态。如果防火墙状态。
为仍在运行。使用service
iptables
stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。
3.2
配置A主(master)
B从(slave)模式;3.2.1
配置A
为master。
增加一个用户同步使用的帐号:
GRANT
FILE
ON
*.*
TO
‘backup’@'10.10.8.112'
IDENTIFIED
BY
‘1234’;
GRANTREPLICATION
SLAVE
ON
*.*
TO
‘backup’@'10.10.8.112'
IDENTIFIED
BY
‘1234’。
赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION
SLAVE的权限才可以。
增加一个数据库作为同步数据库:create
database
test;
创建一个表结构:create
table
mytest
(username
varchar(20),password
varchar(20));
修改配置文件:修改A的/etc/my.cnf文件。
在my.cnf配置项中加入下面配置:
server-id
=
1
#Server标识
log-bin
binlog-do-db=test
#指定需要日志的数据库
重起数据库服务:
service
mysqld
restart
查看server-id:
show
variable
like
‘server_id’。
❻ mysql主库 备份库怎么同步
在两台服务器上安装mysql
#apt-get install mysql-server -y
创建同步帐户
我这里就直接使用的数据库默认用户root
在ubuntu4上:
mysql> grant replication slave on *.* to 'root'@'192.168.2.5' identified by '12345678';
mysql> flush privileges;
在ubuntu5上:
mysql> grant replication slave on *.* to 'root'@'192.168.2.4' identified by '12345678';
mysql> flush privileges;
修改mysql的配置文件
/etc/mysql/my.cnf
在Ubuntu4 上:
【code】
[mysqld]
binlog-do-db=db_rocky #需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-do-db=db_rocky #需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
#同步参数:
server-id=1
log_bin = /var/log/mysql/mysql-bin
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
【/code】
在Ubuntu5上:
[mysqld]
server-id=2 #设置一个不同的id、注意这里在my.cnf里面有个默认值是 1 、把默认值改掉、而不能新增一个server-id
binlog-do-db=db_rocky #需要记录二进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项
#需要同步的数据库
replicate-do-db=db_rocky
#需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
分别重启服务器上的mysql服务
分别在服务器上查看做为主服务器状态
mysql> flush tables with read lock;#防止进入新的数据
mysql> show master status\G;
分别在服务器上用change master语句指定同步位置 :
在ubuntu4上:
change master to master_host='192.168.2.5',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;
在Ubuntu5上:
change master to master_host='192.168.2.4',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;
❼ mysql主从同步 如何同步已有的数据,
--主机开两个窗口,一个进入mysql,一个是shell
--主机阻断写操作
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1529881 | openser | mysql,test |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
--另外一个窗口导出主机数据库
mysqlmp -u root -p123456 --opt -R openser > openser20121203.sql
--刚才的窗口主机解锁
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql>
--打包数据文件到从机
drop database openser;
create database openser;
mysql -u root -p123456 openser < openser20121127.sql
--从机操作
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='192.168.21.26',
MASTER_USER='repl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G