来自 美高梅4858mgm 2019-12-11 23:03 的文章
当前位置: 美高梅4858官方网站 > 美高梅4858mgm > 正文

MySQL数据库同步

server-id=2
#设置服务器id,主从服务器要不等
replicate-do-db=test
#点名必要从master同步过来的数据库"test"
replicate-ignore-db = mysql
#钦赐不须求从master同步过来的数据库"mysql"

#安装master服务器的IP地址、登录客商、密码、端口
master-host=192.168.1.2
master-user=backup
master-password=123456
master-port=3306

编写制定“/etc/my.cnf”(区别服务器恐怕路径差别)文件,在该公文加多以下内容:
server-id=1
#安装服务器id,主从服务器要不等
log-bin=mysqllog
#启用二进制退换日志(即把持有对数据开展操作的SQL命令以二进制格式记入日志)
#个中mysqllog是日记文件的称号,日志的文本名是mysqllog.n,在那之中n是三个6位数字的整数。
binlog-do-db=test
#点名须求启用二进制更换日志的数据库"test"
binlog-ignore-db = mysql
#点名无需启用二进制改变日志的数据库"mysql"

重启mysqld服务,能够用mysql命令:SHOW MASTEPRADOSTATUS;查看“启用二进制退换日志”情状 
从服务器(slave)设置
编辑“/etc/my.cnf”(不一致服务器恐怕路线分裂)文件,在该文件增多以下内容:

MySQL 的数目同步,在 MySQL 官网文书档案上,叫 Replication 字面是重作的情致,意译正是一同了。其实,MySQL 的同台,并非选用同步 sync 那一个单词而是用重作 replication,很可信证明了 MySQL 数据库操作的面目,是作形似的操作,或叫重作相像的操作,以保全主数据库服务器 master 与 从属服务器 slave 之样的数据保持后生可畏致。replication 正是有再度,重作的情致。
MySQL 为了达成 replication 必得展开 bin-log 项,也是开采二进制的 MySQL 日志记录选项。
MySQL 的 bin log 二进制日志,能够记录全数影响到数据库表中蕴藏记录内容的 sql 操作,如 insert / update / delete 操作,而不记录 select 那样的操作。由此,大家得以由此二进制日志把某有的时候间段内不见的多少足以还原到数据库中(假设二进制日志中著录的日志项,包含数据库表中全数数据,那么,就足以还原地面数据库的全套数量了)。 而那些二进制日志,假诺用作远程数据库复苏,那正是 replication 了。那正是行使 replication 而不用 sync 的来由。那也是为什么要设置 bin-log = 那么些选项的案由。
在一同进度中,最注重的联名参照物,正是一起运用那多少个二进制日志文件,从那一条记下最初联合具名。
上面,大家来教学最主旨的进度:
先是,你应有有两个或五个以上的 MySQL 数据库服务器,版本最佳是在 3.3 以上 (当然,四个服务器不必然是两台机器,风度翩翩台机械上设置多少个 MySQL 服务是能够的,同不平时间,要是您对 MySQL replication 原理特别贯通的话,你居然足以在三个 MySQL 服务的三个例外数据库 database 之间香港作家联谊会晤,看有没有必要了)表明: 那七个服务器平时安装七个为主服务器,或叫源服务器, master mysql server, 另风华正茂台或任何多台正是 replication slave 同步从服务器了。意气风发台 slave 与多台 slave 设置方法是一模二样的,那样您就足以作雷同数据库集群了。
安装可访谈 MySQL 帐号,操作以乌克兰语为准。
MySQL 帐号形似安装为节制 IP 访谈,以保障安全性
MySQL 帐号相近在 master 与 slave 设置为同风流倜傥帐号,同临时间是长途可访谈
非常注意,就算您用 Linux / Unix 操作系统,那应当要静心一下防火墙 firewall 有未有节制 MySQL 远程访问,若是是,最佳是开垦远程访问端口,并作好拜访 IP 约束
鉴于 my.cnf 中要当面存储 MySQL 帐号密码,请小心维护 my.cnf 不让别的顾客访谈到(看来要向 MySQL 表达下之后用密码存 passwd)。
其三步,当然是安装七个服务器要联合的数据库为同样的数据库了。
此地有大器晚成对手艺,满含 mysql 的 sql 指令表明下。
办法之后生可畏,便是乌Crane语表达中说的,先锁定数据库读写功用 ( 其实最佳是甘休mysqld 服务,再作备份卡塔尔(قطر‎ 然后用 tar 备份数据库目录,转到 slave 服务器相像数量目录中。
办法之二,使用 mysql studio 那样的实用工具,间接运用 mysql studio 的 backup database 工具把数据库同步
如上二种方法都以 master 数据库中有过多数额记录,按上两 种艺术赢得 master 与 slave 有平等数据库与数量记录。 而第三种办法,则是切合于新建数据库的景观,特别符合于 master 与 slave 在 my.cnf 已经安装好 replication 关系 (但 未钦定 database 同步数据库 )的情事: 那正是选取 mysql 的 sql 语句 load table from master 与 load data from master;
load table from master 可以从 master 数据库把表结构复制到 slave 数据库中,那样可以创制联合的表。
load data from master 是从 master 数据库把数据导入到 slave 数据表中,条件是 master 从生机勃勃初阶安装运转就动用了 bin-log 参数而保留有二进制日志
接下去正是陈设 master 与 slave 的 my.cnf 文件,使得 replcation 能有适合的启航参数以支撑数据同步
工夫: 假诺你采纳 win2k 的 mysql 那么,你能够下载 mysql.com 出的法定 mysql administrator 实用程序,直接在 mysql administrator 中就可以配置 master 与 slave ,同期也能够配备 query-cache 。
在 master 的 my.cnf(如果是 win32 那就是 my.ini)增加
[mysqld]
log-bin =
server-id=1
在意,上边的 log-bin = 中的 等号 = 是不可少的。
在 slave 的 my.cnf 修改
[mysqld]
美高梅4858mgm,server-id=2 # 即使有四个 slave 就改为不另行的 id 就好,在mysql 4.1中,这一个已经裁撤了
master-host=10.10.10.22
master-user=backup #手拉手顾客帐号
master-password=1234
master-port=3306
master-connect-retry=60 #预设重试间距60秒
replicate-do-db=test # 告诉slave只做 test 数据库的换代
bin-log =
 
 
 
检查 master 与 slave 配置意况,使用 show master status; 与 show slave status; 那三个 SQL 指令就可以在 master 与 slave 查看配置景况。这里有七个状态变量十二分首要
mysql > SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+
| File   | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73  | test   | manual,mysql  |
+---------------+----------+--------------+------------------+
注意 File 是 mysql-bin.003 而 position 是 73
本条文件是对 test 那几个数据库的二进制日志记录,记录数据变化的当前记下条数是 73
眼下大家说过,二进制日志记录着某些数据库全体数据记录变化的 sql 操作语句,如 insert / update / delete 等,就是因为这么,在 slave 同步 mysql 数据库操作时,其实是读取master 中那个 mysql-bin.003 二进制日志中的 sql 操作,同在 slave 中实施这个 sql 操作,所以,同步成功有以下多少个尺码:
master 与 slave 有平等的多寡库表构造,最棒 database name 也如出风流倜傥辙(能够安装为不一样样的 database name)
master 与 slave 有相似的启幕数据记录,保险同步操作开端后双方数据黄金时代致
master 必须选用 bin-log 二进制日志记录(推荐 slave 也应用 bin-log)
slave 是从 master 的 bin-log 是读取 sql 记录来一块,所以,从哪一条 log 开首读取很要紧(上面包车型大巴第 7 条操作,便是有限扶持 slave 能与 master 保持长久以来的笔录读取,并读取正确的 bin-log 日志文件)
在 slave 实施上边 sql 操作
mysql> CHANGE MASTER TO
->  MASTER_HOST=master_host_name,
->  MASTER_USER=replication_user_name,
->  MASTER_PASSWORD=replication_password,
->  MASTER_LOG_FILE=recorded_log_file_name,
->  MASTER_LOG_POS=recorded_log_position;    
这里,把 上面的 redcorded_log_file_name 改为 mysql-bin.003 而 recorded_log_position 改为 73 (特别注意,那是关乎重大)。
linux 下的 mysql 与 win2k 下的 MySQL 作 replication 会有哪些技能:
注意 Linux 下有大小写区分,而 win2k 下未有。所以最佳应用 mysqldump 方法来让多个数据库起先化同步,而不可能接收 tar 方式一直 copy 数据库表文件。使用 mysql studio 来作 database backup 也不利
潜心 win2k 下的 mysql 配置文件是 c:my.ini。你能够使用 mysql administrator 0.9 这几个图型分界面包车型客车实用工具来安装。
倘使 win2k 下的 mysql 为 master , 必供给留神 show master status 中呈现出来的结果。
win2k 下的 mysql 为 slave 时,注意不要把合营偶尔间间周期设置太长。
实战
条件安插
操作系统:linux
MySQL:5.14
主服务器A IP:192.168.1.2(若是卡塔尔(英语:State of Qatar)
从服务器B IP:192.168.1.3(假若)
手拉手数据库: test(用于测量检验,两台服务器开始数据风流倜傥致) 
主服务器(master)设置
新建二个用来备份的客商(直接用root客商也能够):
GRANT FILE ON *.* TO [email protected] IDENTIFIED BY ‘123456’;

的数据同步,在 MySQL 官网文书档案上,叫 Replication 字面是重作的意思,意译即是联合了。其实,MySQL 的联合签名,实际不是运用同步 sync 那...

master-connect-retry=60
#接连几日master服务器失利后重试的延迟时间
slave-skip-errors=all
#跳过全体错误继续履行同步专业
log-slave-updates
#启用从属服务器上的日记同步功用 
留意:若是从服务器上存在master.info文件(如:/var/lib/mysql/master.info),要使以上配置选项生效,在重启mysqld服务前必须删除该公文。
重启mysqld服务,可以用mysql命令:SHOW SLAVE STATUS;查看同步情状
从数据库的相干命令:
slave st; slave start ; 初阶停止从数据库。
show slave statusG; 展现从库正读取哪一个主数据库二进制日志 
打响做到上述配置后,在主服务器A的testCurry添增添少或删除数据,在从劳动器B的testCurry立时也能观察相应的改观。两台服务器的同步操作能够说是弹指间实现的。

本文由美高梅4858官方网站发布于美高梅4858mgm,转载请注明出处:MySQL数据库同步

关键词: