MySQL主从复制(Replication)(MySQL数据同步)配置
MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。
配置主服务器(master)
1、编辑数据库配置文件my.cnf,一般在/etc/目录下。
- #vi /etc/my.cnf
在[mysqld]的下面加入下面代码:
- log-bin=mysql-bin
- server-id=1
- innodb_flush_log_at_trx_commit=1
- sync_binlog=1
- binlog-do-db=wordpress
- binlog_ignore_db=mysql
server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=wordpress是表示只备份wordpress。
binlog_ignore_db=mysql表示忽略备份mysql。
不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。
2、然后重启MySQL:
- #service mysqld restart
3、登录MySQL服务器。
- #mysql -uroot -p
在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令,把X.X.X.X替换为从服务器的IP。
- mysql>CREATE USER 'user'@'X.X.X.X' IDENTIFIED BY 'password';
- mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';
4、执行以下命令锁定数据库以防止写入数据。
- mysql>FLUSH TABLES WITH READ LOCK;
这时不要退出mysql命令行,因为退出命令行后,全局表锁就失效,新开一个窗口继续执行以下命令。
5、导出数据库
- #mysqldump -u root -p123456 --all-databases > /root/all.sql
6、再次连接数据库进入mysql命令行查看master状态。
- mysql>SHOW MASTER STATUS;
请记下显示的信息,配置从服务器会用到。
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1001741 | dbispconfig | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
7、解锁数据表。
- mysql>UNLOCK TABLES;
8、使用scp命令传输数据库文件all.sql到从服务器。
- #scp /root/all.sql root@www.example.com:/root
配置从服务器(slave)
登录从服务器。
1、导入主服务器的数据库。
- #mysql -u root -p123456 < /root/all.sql
2、编辑配置文件my.cnf,在[mysqld]下面加入:
- server-id=2
2可以自己定义,只要保证唯一的就行。
3、保存文件并重启mysqld。
- #service mysqld restart
4、登录mysql服务器,执行以下命令。
- mysql>CHANGE MASTER TO
- MASTER_HOST='X.X.X.X',
- MASTER_USER='user',
- MASTER_PASSWORD='password',
- MASTER_PORT=3306,
- MASTER_LOG_FILE='mysql-bin.000001',
- MASTER_LOG_POS=98,
- MASTER_CONNECT_RETRY=10;
MASTER_HOST:主服务器的IP。
MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
5、启动slave进程。
- mysql>START SLAVE;
6、查看mysql的日志,一般在/var/log/目录下,如果启动成功,你应该会看到类似下面的日志。
091104 8:42:02 [Note] Slave I/O thread: connected to master ‘root@X.X.X.X:3306?, replication started in log ‘mysql-bin.000001? at position 98
现在主服务器和从服务器已经配置好了。另外你可能需要设置主服务器的数据库二进制日志的过期时间,可以在配置文件中使用参数expire_logs_days来设定。
检查是否正常运行
1、在主服务器上执行SHOW MASTER STATUS,如果已经记录,Position应为非零。如果没有记录,确认正用log-bin和server-id选项运行主服务器。
2、在从服务器上执行SHOWSHOW SLAVE STATUS,检查是否slave_IO_Running和slave_SQL_Running的值均为Yes。如果不是,验证当启动从服务器时使用的选项。
3、 如果从服务器正在运行,建立了与主服务器的连接吗?使用SHOW PROCESSLIST,找出I/O和SQL线程并检查它们的State列看它们如何显示。如果I/O线程状态为Connecting to master,验证主服务器上复制用户的权限、主服务器主机名、DNS设置,是否主服务器真正在运行,以及是否可以从从属服务器访问。
需要注意的问题
1、主服务器与从服务器的时区必须一致,否则mysql执行与时间相关的函数将会导致数据不一致。
MySQL主从复制(Replication)(MySQL数据同步)配置的更多相关文章
- Mysql主从复制,实现数据同步
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- TiDB 作为 MySQL Slave 实现实时数据同步
由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性 ...
- OGG "Loading data from file to Replicat"table静态数据同步配置过程
OGG "Loading data from file to Replicat"table静态数据同步配置过程 一个.mgr过程 GGSCI (lei1) 3> view p ...
- Linux MySQL主从复制(Replication)配置
MySQL是开源的关系型数据库系统.复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程. 配置主服务器(mast ...
- MySQL主从复制(Replication for Backup)
环境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1. 基本概念和操作思路 主从复制能做什么 数据库的主从复制,是 ...
- linux下mysql主从复制,实现数据库同步
运行环境: 查看linux版本命令:lsb_release -a 主服务器:centos release 6.5 mysql 5.6.10-log IP:172.17.200.25从服务器:cent ...
- 基于 MySQL Binlog 的 Elasticsearch 数据同步实践 原
一.背景 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存储业务数据可以 ...
- mysql数据库备份之主从同步配置
主从同步意义? 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复制是异步进行的,所以从服务 ...
- 基于MySQL Binlog的Elasticsearch数据同步实践
一.为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存储业务数 ...
随机推荐
- 文件读取 FILE
需要了解的概念 [数据流][缓冲区(Buffer)][文件类型][文件存取方式][借助文件指针读写文件] 需要理解的知识点包括:数据流.缓冲区.文件类型.文件存取方式 1.1 数据流: 指程序与数据的 ...
- Chrome 清除某个特定网站下的缓存
打开开发者工具(F12),选择 Network--Disable cache 即可.需要清除某网站缓存时 F12 打开开发者工具就会自动清除这个网站的缓存,而不必清除所有网站的缓存了.
- 20155303 2016-2017-2 《Java程序设计》第三周学习总结
20155303 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章 学会如何查询Java API文件对于Java的学习很有帮助,可以了解到如何使用各种方 ...
- 【codeforces】【比赛题解】#854 CF Round #433 (Div.2)
cf一如既往挺丧 看丧题点我! [A]分数 Petya是数学迷,特别是有关于分数的数学.最近他学了所谓一个分数被叫做“真分数”当且仅当其分子小于分母,而一个分数被叫做“最简分数”当且仅当其分子分母互质 ...
- 【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)
3.Web安全基础 3.1.HTTP协议 1)TCP/IP协议-HTTP 应用层:HTTP.FTP.TELNET.DNS.POP3 传输层:TCP.UDP 网络层:IP.ICMP.ARP 2)常用方法 ...
- Remove K Digits
Given string A representative a positive integer which has N digits, remove any k digits of the numb ...
- linux音频alsa-uda134x驱动分析之二(时钟)
Audio Clocking音频时钟============== This text describes the audio clocking terms in ASoC and digital au ...
- jQuery学习(二) 自定义扩展函数
jQuery函数调用写法很优雅,在项目开发过程中,有需要自定义函数经常被使用到,将这些函数放置到项目ExtTool.js中,为了编码方式的统一,也希望这些自定义函数与jQuery函数一致的调用方式.在 ...
- yum命令安装软件时,出现--centos 7 安装apache 出现 Could not resolve host: mirrorlist.centos.org; 未知的错误"--CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决
CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决 今天在虚拟机上安装完CentOS6.5之后,首次使用时yum命令安装软件时,出现 ...
- Jackson jsonToBean 忽略 Bean中不存在属性的匹配。
1. jsonToBean时,json中有的字段,bean中没有 无法匹配时,忽略此字段,不抛出异常(默认是抛出异常的) 方案一(局部):在class上加 @JsonIgnoreProperties( ...