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

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;

其中MASTER_LOG_FILE

以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找。

4. 导入新库到从服务器上。

 代码如下 复制代码

mysql < newdb.sql5. start slave

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

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

时间: 2024-09-20 20:26:52

添加新数据库到MySQL主从复制列表的相关文章

添加新数据库到MySQL主从复制教程解问题解答

MySQL主从复制一般情况下我们会设置需要同步的数据库,使用参数配置选项,binlog-do-db,可以在master上指定需要同步的数据库,replicate-do-db在从数据看上指定需要同步的数据库.(一般只设定master上的binlog-do-db即可,不需要两个同时设定.以防万一,在slave也可以加上replicate-ignore-db). 我们遇到的问题是,在master上面新增了一个数据库,这个时候如何把新加的这个数据库添加到MySQL的主从复制链里?(即不重新复制整个库的情

数据库-关于mysql主从复制的问题

问题描述 关于mysql主从复制的问题 最近在学习mysql主从复制的东西,配置什么基本都完成了,在最后第二部复制数据库文件的时候出现了问题.我停止了主从服务器的服务,将data文件夹整个复制到了从服务器中,但是主从服务器的引擎不同,主服务器my.ini中default-storage-engine=INNODB,从服务器的为MyISAM.进行复制后开启服务,但是从服务器只有数据库,库内不存在任何表.使用front查看时连mysql数据库下也是空.求教应该怎么处理. ![图片说明](http:/

在asp 中使用 sql_dmo 添加新数据库

set oSQLServer =server.createobject("SQLDMO.SQLServer")oSQLServer.Connect "数据库IP,端口","用户名","密码" ' 连接数据库set oSQLServer =server.createobject("SQLDMO.Database")set oDBFileData =server.createobject("SQLDM

Mysql主从复制(master-slave)实际操作案例_Mysql

在这一章节里, 我们来了解下如何在 Mysql 中进行用户授权及主从复制   这里先来了解下 Mysql 主从复制的优点:   1. 如果主服务器出现问题, 可以快速切换到从服务器提供的服务 2. 可以在从服务器上执行查询操作, 降低主服务器的访问压力 3. 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务 注意一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询, 实时性要求高的数据仍然需要从主数据库获得   在这里我们首先得完成用户授权, 目的是为了给从服务器有

MySQL数据库添加新用户

在VPS上安装完MySQL之后,缺省的用户只有root@localhost,新添加MySQL用户最简单的方法是: 在phpmyadmin里面执行如下语句(语句最后要加分;号): grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD' flush privileges 当然在SSH里面运行 mysql -uroot -p 之后也能够输入上面的sql语句,效果一样. 解释如下: 这将添加新用户,用

如何添加新用户到你的MySQL数据库

如何添加新用户到你的mysql教程数据库教程 本文章主要讲一下如何添加新用户到你的mysql数据库哦,因为一个mysql可能有很多数据库我们要给每个不同的数据库开权限,开用户,这个就有必要了. create user user [identified by [password] 'password'] 实例 create user 'user1'@'localhost' identified by 'pass1'; 如果你检查mysql.user表,您可以在里面找到一个新的纪录.请注意,所有pr

使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法_php技巧

1.新建数据库: 进入phpmyadmin管理界面以后,找到如下文字"创建一个新的数据库",然后在下面填上要新建的数据库的名称,在后面的下拉列表中选择数据库的编码,如"utf8_general_ci",点击"创建"按钮,这样就新建了一个数据库. 2.新建此数据库的对应帐户 在phpmyadmin管理界面点击"权限",打开链接,点击"添加新用户",在打开的页面中会看到"登入信息",输入用户

mysql主从复制实现数据库同步

mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过.趁着这段时间相对空闲,也就自己实现一遍.尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录. 环境: 主服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.107从服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.109主服务器test数据库 CREATE TABLE `menber` ( `name` varchar(255) DEFAUL

Linux环境中MySQL主从同步--添加新的从库

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1689171 当前我认为数据库主从有两大应用价值: 1.从库相当于主库的备份.虽然数据库的主从并不能代替/取代备份,例如错误的数据可能毁掉所有的数据库,但主从也是在一种可读的状态下保持备份的一种实现方式. 2.从库可以缓解主库的压力,能提高性能.由于从库是只读的,因此在读取查询方面,从库可以代替主库,承担一定的压力,