MySQL主从复制环境中如何添加新数据库
这篇文章将为大家详细讲解有关MySQL主从复制环境中如何添加新数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
主从复制基本步骤
首先,我们列举一下主从复制的基本步骤,(MySQL主从首先需要在各自服务器配置好)。
(1)复制数据库
mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz
注意:innodb用 –single-transaction, myisam需要用 –lock-all-tables。
(2)复制,导入数据
pv < all-db-with-master-data.sql.gz | zcat | mysql
(3)启动slave数据库
slave start
注意:切换到主的语句已经在导出的sql语句里面了,注意查看下面的代码片段。
change master to master_log_file=’(binlog name in relay_master_log_file)’, master_log_pos=(exec_master_log_pos number)
那么,在现有的主从复制结构中,如何增加一个新的数据库进去?我们继续往下看。
添加数据库
比如我们要增加一个数据库在master服务器上,比如,名为newdb的数据库。具体操作如下:
(1)从服务上,停掉slave数据库。
stop slave;
(2)主服务器上,导出新数据库
mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql
(3)修改主服务器my.cnf文件
主服务器上,修改my.cnf文件,添加新库到binlog-do-db参数,重启mysql。
(4)查找当前的日志文件以及位置
在导出的newdb.sql里面查找当前的日志文件以及位置(change master to …)
然后让slave服务器执行到这个位置。
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;
其中MASTER_LOG_FILE以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找。
(5)导入新库到从服务器上
mysql < newdb.sql
(6)启动从服务器
start slave
关于MySQL主从复制环境中如何添加新数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341