mysql 机器复制_MySQL复制在同一台机器上
这怎么解释MySQL在同一台机器上的复制。
你有很大的命中,数据库驱动的站点和性能,冗余,安全性现在被考虑在内。 DBA现在由很多手指输入,寻求一些很好的解决方案,使幸福的脸孔。所以这里有一些单词,如集群,复制,备份,故障切换等。那么这些是什么?我们目前正在基于Web的数据库驱动的站点讨论复制,以获得大型命中。
什么复制是为什么?
复制允许DBA将master的数据库克隆到具有相同数据库的另一个数据库服务器。这包括主和从属身份。从站使自己成为主数据库服务器及其数据库的精确副本。主人和Minion之间可能有一对一,一对多的关系。从机连续读取master处的二进制日志(binlog存储在master数据库服务器上编写的查询),并将其输入到其从属数据库服务器。
复制的不是:
考虑备份,性能,安全性和冗余性的解决方案。还有其他的技术。
我们目前看到在同一台机器上复制MySQL服务器,即主机和从机在同一机器上运行。我们还将讨论一些复制问题。
先决条件:
MySQL服务器4.1.12或以上的源格式。从源代码格式从http://mysql.com下载它们。
您可以轻松地从http://mysql.com下载mysql客户端或将mysql放在环境变量中。其他明智的mysql将不得不从相应的主/从目录调用。
一些Linux发行版。 (我使用Fedora Core 2)。
删除mysql服务器的依赖关系
MySQL主安装和配置:
下载mysql-4.1.12源在/ misc文件夹
tar xzvf mysql-4.1.12.tar.gz
cd /misc/mysql-4.1.12
./configure --prefix=/usr/local/mysql-master
make
make install
cd /usr/local/mysql-master/bin
./mysql_install_db (它将创建一个var文件夹)
cd ../var
cp /misc/mysql-4.1.12/support-files/my-medium.cnf my.cnf
cd ..
groupadd mysql
useradd -g mysql mysql
chown -R root .
chown -R mysql var
chgrp -R mysql .
[mysqld]
port = 3306
socket = /usr/local/mysql-master/mysql.sock
#skip-networking // we have skip this in our case as we are doing both master and slave on same machine.
# Replication Master Server (default)
# binary logging is required for replication
log-bin
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1根据您的要求配置其他设置或保持相同,它将工作! :)
现在启动mysql服务器:
cd /usr/local/mysql-master/bin
./mysqld_safe --defaults-file=/usr/local/mysql-master/var/my.cnf &;
MySQLMinion:
现在在不同的目录中提取mysql-4.1.12.tar.gz,
cd /opt/mysql-4.1.12
./configure --prefix=/usr/local/mysql-slave
make
make install
cd /usr/local/mysql-slave
cd bin
./mysql_install_db (它将创建一个var文件夹)
cd ../var
cp /opt/mysql-4.1.12/support-files/my-medium.cnf my.cnf
cd ..
groupadd mysql
useradd -g mysql mysql
chown -R root .
chown -R mysql var
chgrp -R mysql .
在var文件夹中编辑my.cnf
[mysqld]
port = 3307
socket = /usr/local/mysql-slave/var/mysql.sock
#skip-networking
server-id = 2
# The replication master for this slave - required
master-host = localhost
master-user = slavedb
master-password = q1w2e3r4t5
master-port = 3306现在启动mysql服务器:
cd /usr/local/mysql-slave/bin
./mysqld_safe --defaults-file=/usr/local/mysql-slave/var/my.cnf &
配置复制:
通过以下方式连接到mysql master:
mysql --sock=/usr/local/mysql-master/mysql.sock
在主人创建帐户为Minion:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slavedb@"192.168.1.27/255.255.255.0" identified by 'q1w2e3r4t5';
Query OK, 0 rows affected (0.28 sec)
通过以下方式连接到mysql slave:
mysql --sock=/usr/local/mysql-slave/mysql.sock
mysql> slave start;查询OK,0行受影响,1个警告(0.04秒)
测试:
在master处连接mysql:
mysql> show master status\G;*************************** 1. row ***************************
File: adam-bin.000001
Position: 227
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.01 sec)
ERROR:
No query specified在Minion连接mysql
mysql> show slave status\G;*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: localhost
Master_User: slavedb
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: adam-bin.000001
Read_Master_Log_Pos: 4
Relay_Log_File: adam-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: adam-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 4
Relay_Log_Space: 4
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
1 row in set (0.00 sec)
ERROR:
No query specified masterlog的binlog文件的位置必须相同,在mysql slave中显示从属状态\ G;
如果一切顺利,您将在同一系统上运行一对一的主从关系的工作副本。
一些问题:
由于问题的数量,复制可能会失败。我分享了我的一些复制经验。
问题:复制失败,主人下来。
由于许多原因,主人可能会失败。检查数据库中的文件限制,SQL查询和磁盘使用。如果有任何原因显示,修复,重新启动mysqld并检查主状态:
mysql> show master status\G; *************************** 1.行******************** *******
adam-bin.000003
职位:227 Binlog_Do_DB:
Binlog_Ignore_DB:
1排集(0.01秒)
现在检查slave:显示slave状态:
mysql> show slave status\G; *************************** 1.行******************** *******
Slave_IO_State:连接到主
Master_Host:localhost
Master_User:slavedb
Master_Port:3306
Connect_Retry:60
Master_Log_File:adam-bin.000001
Read_Master_Log_Pos:4
Relay_Log_File:adam-relay-bin.000001
Relay_Log_Pos:4
Relay_Master_Log_File:adam-bin.000001
Slave_IO_Running:否
Slave_SQL_Running:是的
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:4
Relay_Log_Space:4
直到条件:无
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:不
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:NULL
1排(0.00秒)
如上面的值所示,主机已经增加到第三个binlog,而从机仍然指向binlog1。所以通过在mysql slave连接来改变这个值
mysql>; stop slave;
mysql> change master to master_log_file='adam-bin.000003', master_log_pos=227;
mysql> start slave;
现在检查显示从站状态\ G;它的工作很好。
问题2:如果出现重复错误键,则在从站即
在Minion
Mysql> show slave status\G; *************************** 1.行******************** *******
Slave_IO_State:等待主人发送事件
Master_Host:10.0.0.152
Master_User:repl
Master_Port:3306
Connect_Retry:60
Master_Log_File:adam-bin.000048
Read_Master_Log_Pos:317714810
Relay_Log_File:db4-relay-bin.000001
Relay_Log_Pos:290512385
Relay_Master_Log_File:adam-bin.000048
Slave_IO_Running:是的
Slave_SQL_Running:否 Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:1062
Last_Error:错误'重复条目'dekq5g820avnfdmar5qi9dkhv3'为关键字1'查询。 默认数据库:'session_sql'。 查询:'INSERT INTO sessi ons5 VALUES('dekq5g820avnfdmar5qi9dkhv3',UNIX_TIMESTAMP(NOW())+ 18000,'redir ect | i:1;')' Skip_Counter:0
Exec_Master_Log_Pos:290512419
Relay_Log_Space:317714776
直到条件:无
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:不
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:NULL
1排(0.00秒)
这意味着,由于不可靠的主,Minion被读取,或者不可用的Minion,主人被更新,所以查询得到两个主键,一个条目是一个混乱。
所以修正它是:
在Minion:
Mysql> set global sql_slave_skip_counter=1;
Mysql> start slave;
Mysql> show slave status\G;这将显示与主站同步的值。固定。
mysql 机器复制_MySQL复制在同一台机器上相关推荐
- 50台机器无盘服务器,以50台机器小吧为例看深度无盘快速布署的那些事.doc
以50台机器小吧为例看深度无盘快速布署的那些事 以50台机器小网吧为例看深度无盘快速布署的那些事 干网管这行好几年了,接手的网吧也有不少,这些年头也一直在研究无盘,自认还是有一些了解.测试和安装了这么 ...
- mysql 基于语句的复制_MySQL 复制 - 性能与扩展性的基石 1:概述及其原理
1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步.接下来,我们将从复制概述及原理.复制的配置.常 ...
- mysql行复制_MySQL复制(一)--复制概述
(一)什么是复制 MySQL复制可以使数据从一台MySQL服务器(主服务器)复制到一台或多台MySQL服务器(从服务器),默认情况下,MySQL的复制是异步的,从服务器不需要永久连接就可以接收来自主服 ...
- mysql 实例复制_MySQL 复制详解及简单实例
MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等.MySQL支持多种不同的复 ...
- mysql 环形复制_MySQL 复制(五:拓扑结构) | 剑花烟雨江南
可以在任意主库和备库之间建立复制,只有一个限制: 一个备库只能有一个主库. 前面已经介绍了如何为一个主库设置一个备库,接下来介绍其他比较普遍的拓扑结构以及优缺点.记住以下原则: 1)一个MySQL 备 ...
- mysql 串行复制_MySQL 复制(四:复制原理) | 剑花烟雨江南
一.基于语句的复制 在MySQL5.0之前的版本只支持基于语句的复制(也称为逻辑复制),这在数据库领域是很少见的.基于语句的复制模式下,主库会记录那些造城数据更改的查询,当备库读取并重放这些事件时,实 ...
- 单台mysql增加节点_如何在一台服务器上安装两个PXC集群节点
我认为在单个物理服务器上运行2个或多个Percona XtraDB Cluster(PXC)节点这样没有什么意义,除了教育和测试目的,但在这种情况下这样做仍然是有用的.最受欢迎的实现方式似乎是服务器的 ...
- 多个php一个机器,如何利用docker在同一台机器上搭建多套php开发环境?
首先是一个容器要包含完整的程序加依赖(出去中间件),拿 LNMP 举例子:docker 提供的是 Linux 环境,容器中要包含 Nginx 和 Php,然后再单独部署一个 MySQL 其次,如果多个 ...
- VN仓库迁移(将一个仓库从一台机器上上转移到另一台机器上)
将一台服务器上已有的SVN仓库数据整体迁移到另外一台机器上,要保留所有的版本号和版本信息,需要以下过程来解决 No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > s ...
最新文章
- linux正则表达式_号称“天书”的正则表达式,要这么来讲,我小学三年级已经满分了
- boost::function模块function_typeof的测试程序
- Linux中变量#,@,0,1,2,*,$$,$?的含义
- (王道408考研数据结构)第六章图-第四节2:最小生成树之克鲁斯卡尔算法(思想、代码、演示、答题规范)
- Android 获取系统或SDCARD剩余空间信息(转)
- nyoj1110 一个简单数学题
- NGUI常见功能解释
- 使用 IBM Rational System Architect 工作区来实施 DoDAF 2 架构
- 测试实践:华为测试流程总结
- 使用PS将图片自然从清晰到模糊过渡
- 小说更新太慢怎么办_5本更新慢如龟速的网络小说,书虫追更很煎熬,却依旧不离不弃...
- mysql表名大小写设置
- MySQL count用法
- 三级综合医院病案首页上报系统要求
- WINCE 实用技巧 之 创建快捷方式详解
- 计算机网络技术基础 阚宝明,计算机网络技术基础阚宝明答案
- BOM物料清单,金蝶KIS旗舰版专业版金蝶K3WISE生产管理软件ERP
- Java黑皮书课后题第2章:2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换为千克并显示结果。1磅等于0.454千克
- vue.cli3.0版本的用axios调用本地JSON数据报404解决方法
- 联通服务器维护破解限速,网速1mbps(联通限速1mbps解除方法)
热门文章
- 斐波那契数列大数的压位c语言,HDU 1568 Fibonacci(大数前4位)
- 最新课程 | openGauss 快速上手指南课程即将开课
- 直播丨2020年全国首场12c OCM直考揭秘
- 文档丨暴力破解性能问题
- 如何以卫语句取代嵌套条件表达式
- 当TIME_WAIT状态的TCP正常挥手,收到SYN后…
- 实战分享丨MySQL 与Django版本匹配相关经验
- 使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生
- 本科阶段就挑战自动驾驶开发?华为云ModelArts帮你轻松实现!
- “洞察千里”,华为云HiLens如何让无人车智行天下