这篇文章将为大家详细讲解有关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主从复制环境中如何添加新数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。