这怎么解释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复制在同一台机器上相关推荐

  1. 50台机器无盘服务器,以50台机器小吧为例看深度无盘快速布署的那些事.doc

    以50台机器小吧为例看深度无盘快速布署的那些事 以50台机器小网吧为例看深度无盘快速布署的那些事 干网管这行好几年了,接手的网吧也有不少,这些年头也一直在研究无盘,自认还是有一些了解.测试和安装了这么 ...

  2. mysql 基于语句的复制_MySQL 复制 - 性能与扩展性的基石 1:概述及其原理

    1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步.接下来,我们将从复制概述及原理.复制的配置.常 ...

  3. mysql行复制_MySQL复制(一)--复制概述

    (一)什么是复制 MySQL复制可以使数据从一台MySQL服务器(主服务器)复制到一台或多台MySQL服务器(从服务器),默认情况下,MySQL的复制是异步的,从服务器不需要永久连接就可以接收来自主服 ...

  4. mysql 实例复制_MySQL 复制详解及简单实例

    MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等.MySQL支持多种不同的复 ...

  5. mysql 环形复制_MySQL 复制(五:拓扑结构) | 剑花烟雨江南

    可以在任意主库和备库之间建立复制,只有一个限制: 一个备库只能有一个主库. 前面已经介绍了如何为一个主库设置一个备库,接下来介绍其他比较普遍的拓扑结构以及优缺点.记住以下原则: 1)一个MySQL 备 ...

  6. mysql 串行复制_MySQL 复制(四:复制原理) | 剑花烟雨江南

    一.基于语句的复制 在MySQL5.0之前的版本只支持基于语句的复制(也称为逻辑复制),这在数据库领域是很少见的.基于语句的复制模式下,主库会记录那些造城数据更改的查询,当备库读取并重放这些事件时,实 ...

  7. 单台mysql增加节点_如何在一台服务器上安装两个PXC集群节点

    我认为在单个物理服务器上运行2个或多个Percona XtraDB Cluster(PXC)节点这样没有什么意义,除了教育和测试目的,但在这种情况下这样做仍然是有用的.最受欢迎的实现方式似乎是服务器的 ...

  8. 多个php一个机器,如何利用docker在同一台机器上搭建多套php开发环境?

    首先是一个容器要包含完整的程序加依赖(出去中间件),拿 LNMP 举例子:docker 提供的是 Linux 环境,容器中要包含 Nginx 和 Php,然后再单独部署一个 MySQL 其次,如果多个 ...

  9. VN仓库迁移(将一个仓库从一台机器上上转移到另一台机器上)

    将一台服务器上已有的SVN仓库数据整体迁移到另外一台机器上,要保留所有的版本号和版本信息,需要以下过程来解决 No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > s ...

最新文章

  1. linux正则表达式_号称“天书”的正则表达式,要这么来讲,我小学三年级已经满分了
  2. boost::function模块function_typeof的测试程序
  3. Linux中变量#,@,0,1,2,*,$$,$?的含义
  4. (王道408考研数据结构)第六章图-第四节2:最小生成树之克鲁斯卡尔算法(思想、代码、演示、答题规范)
  5. Android 获取系统或SDCARD剩余空间信息(转)
  6. nyoj1110 一个简单数学题
  7. NGUI常见功能解释
  8. 使用 IBM Rational System Architect 工作区来实施 DoDAF 2 架构
  9. 测试实践:华为测试流程总结
  10. 使用PS将图片自然从清晰到模糊过渡
  11. 小说更新太慢怎么办_5本更新慢如龟速的网络小说,书虫追更很煎熬,却依旧不离不弃...
  12. mysql表名大小写设置
  13. MySQL count用法
  14. 三级综合医院病案首页上报系统要求
  15. WINCE 实用技巧 之 创建快捷方式详解
  16. 计算机网络技术基础 阚宝明,计算机网络技术基础阚宝明答案
  17. BOM物料清单,金蝶KIS旗舰版专业版金蝶K3WISE生产管理软件ERP
  18. Java黑皮书课后题第2章:2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换为千克并显示结果。1磅等于0.454千克
  19. vue.cli3.0版本的用axios调用本地JSON数据报404解决方法
  20. 联通服务器维护破解限速,网速1mbps(联通限速1mbps解除方法)

热门文章

  1. 斐波那契数列大数的压位c语言,HDU 1568 Fibonacci(大数前4位)
  2. 最新课程 | openGauss 快速上手指南课程即将开课
  3. 直播丨2020年全国首场12c OCM直考揭秘
  4. 文档丨暴力破解性能问题
  5. 如何以卫语句取代嵌套条件表达式
  6. 当TIME_WAIT状态的TCP正常挥手,收到SYN后…
  7. 实战分享丨MySQL 与Django版本匹配相关经验
  8. 使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生
  9. 本科阶段就挑战自动驾驶开发?华为云ModelArts帮你轻松实现!
  10. “洞察千里”,华为云HiLens如何让无人车智行天下