如何在MySQL主从复制环境中添加新数据库?
今天,一位读者报道:我出去面试,被面试官虐待!为什么?因为接受采访的读者是来自一家大型工厂的R& D工程师,因此具有技术性。
因此,在面试过程中,面试官往往会提出技术问题。
但是,毕竟技术仍然必须为企业服务。
仅凭技术是不够的,必须将技术应用于项目。
结果,我最后问了一系列实际的项目问题。
问题之一是:如何在不重新复制整个库的情况下将新数据库添加到MySQL主从复制环境中?结果。
。
。
问题的解释明确的问题采访者的问题更加明确:如何在不重新复制整个数据库的情况下将新数据库添加到MySQL主从复制环境中?首先,我们必须了解面试官的含义。
我们不能在不理解问题的情况下开始回答,这样我们将回答错误的问题,面试的结果自然会很酷。
接下来,让我们首先分析这个问题。
采访者询问如何向MySQL主从复制环境中添加新数据库。
注意:这是数据库,而不是MySQL实例。
添加数据库和MySQL实例是两种完全不同的方式,因此在回答之前,您必须首先了解采访者的含义。
分析MySQL主从复制的问题通常情况下,我们将设置需要同步的数据库,使用参数配置选项binlog-do-db,您可以在主数据库上指定需要同步的数据库,从数据库的角度来看,replicate-do-db指定了需求。
(通常,仅在主服务器上设置binlog-do-db,并且无需同时设置两者。
以防万一,也可以将copy-ignore-db添加到从服务器中)。
解决问题的主从复制的基本步骤首先,我们列举主从复制的基本步骤(首先需要在各自的服务器上配置MySQL主从)。
(1)复制数据库mysqldump--master-data-single-transaction-R-databases [db_name] | gzip-9- | pv> all-db-with-master-data.sql.gz注意:对于innodb-对于单笔交易,myisam需要使用–lock-all-tables。
(2)复制和导入数据pv(3)启动从属数据库slave start注意:导出到SQL语句中已包含要切换到主数据库的语句,请注意以下代码段。
将master更改为master_log_file ='((relay_master_log_file中的binlog名称)',master_log_pos =(exec_master_log_pos号),然后,如何将新数据库添加到现有的主从复制结构中?让我们继续阅读。
添加数据库例如,我们要在主服务器上添加数据库,例如,名为newdb的数据库。
具体操作如下:(1)从服务中停止从数据库。
停止奴隶; (2)在主服务器上,导出新数据库mysqldump --master-data --single-transaction -R --databases newdb> newdb.sql(3)在主服务器上修改主服务器my.cnf文件,修改my .cnf文件,将新库添加到binlog-do-db参数中,重新启动mysql。
(4)查找当前日志文件和位置在导出的newdb.sql中找到当前日志文件和位置(将主服务器更改为…),然后让从属服务器执行到该位置。
启动从服务器直到MASTER_LOG_FILE =“ mysql-bin.000001”,MASTER_LOG_POS = 1222220;其中,在导出的数据库newdb.sql的顶部搜索MASTER_LOG_FILE和MASTER_LOG_POS。
(5)将新库导入到从属服务器上的mysql(6)启动从属服务器启动从属免责声明:本文的内容经21ic授权后发布,版权归原始作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!