北京SEO

添加新数据库到MySQL主从复制列表

2019/10/10/17:36:00  阅读:1816  来源:谷歌SEO算法  标签: 发外链

MySQL主从复制一般情况下我们会设置需要同步的数据库,使用参数配置选项,binlog-do-db,可以在master上指定需要同步的数据库,replicate-do-db在从数据看上指定需要同步的数据库,一般只设定master上的binlog-do-db即可,不需要两个同时设定,以防万一,在slave也可以加上replicate-ignore-db.

我们遇到的问题是,在master上面新增了一个数据库,这个时候如何把新加的这个数据库添加到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文件,添加新库到binlog-do-db参数,重启mysql.

4. 在导出的newdb.sql里面查找当前的日志文件以及位置(change master to …)然后让slave服务器执行到这个位置,代码如下:

start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;//phpfensi.com

其中MASTER_LOG_FILE,以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找.

4. 导入新库到从服务器上,代码如下:

mysql < newdb.sql5. start slave

其中比较重要的是在主服务器上导出新库时的日志位置,position A,这个点很重要,以这个点做为分界线,导入新库.

这种方法也同样适用于某个数据库或者某个数据表不同步的情况,比如主从数据库有一个表由于某些原因数据不一致,那么上面的方法只需要去掉重启数据库一步,其他的操作基本一致.

广告内容

添加新数据库到MySQL主从复制列表 添加新数据库到MySQL主从复制列表 添加新数据库到MySQL主从复制列表

相关阅读

热门评论

Seven 绯闻SEO Seven 绯闻SEO

绯闻SEO,一个专注中小企业网站优化的SEO爱好者

总篇数179

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法