如何将mysql的一个完整数据库全部复制到另外一个数据库?

不能将A库的数据导出.sql之后再导入到B库,因为我根本不知道导入的路径是什么, 如果用语言直接操作? 就是不知道那个路径名嘛 我要知道是哪个盘的话就不用问了嘛

如果从库上表 t 数据与主库不一致,导致复制错误,整个库的数据量很大,重做从库很慢,如何单独恢复这张表的数据?通常认为是不能修复单表数据的,因为涉及到各表状态不一致的问题。下面就列举备份单表恢复到从库会面临的问题以及解决办法:

场景 1

如果复制报错后,没有使用跳过错误、复制过滤等方法修复主从复制。主库数据一直在更新,从库数据停滞在报错状态(假设 GTID 为 aaaa:1-100)。

修复步骤:

    在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000);

    恢复到从库;

    启动复制。

    这里的问题是复制起始位点是 aaaa:101,从库上表 t 的数据状态是领先其他表的。aaaa:101-10000 这些事务中只要有修改表 t 数据的事务,就会导致复制报错 ,比如主键冲突、记录不存在(而 aaaa:101 这个之前复制报错的事务必定是修改表 t 的事务)

    解决办法:启动复制时跳过 aaaa:101-10000 这些事务中修改表 t 的事务。

    正确的修复步骤:

    1. 在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000),恢复到从库;

    2. 设置复制过滤,过滤表 t:

    CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');

    3. 启动复制,回放到 aaaa:10000 时停止复制(此时从库上所有表的数据都在同一状态,是一致的);

    START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';

    4. 删除复制过滤,正常启动复制。

    注意事项:这里要用 mysqldump --single-transaction --master-data=2,记录备份快照对应的 GTID

    场景 2

    如果复制报错后,使用跳过错误、复制过滤等办法修复了主从复制。主、从库数据一直在更新。

    修复步骤:

    在主库上备份表 t (假设备份快照 GTID为 aaaa:1-10000);

    停止从库复制,GTID为 aaaa:1-20000;

    恢复表 t 到从库;

    启动复制。

    这里的问题是复制起始位点是 aaaa:20001,aaaa:10000-20000 这些事务将不会在从库上回放,如果这里面有修改表 t 数据的事务,从库上将丢失这部分数据。

    解决办法:从备份开始到启动复制,锁定表 t,保证 aaaa:10000-20000 中没有修改表 t 的事务。

    正确修复步骤:

    对表 t 加读锁;

    在主库上备份表 t;

    停止从库复制,恢复表 t;

    启动复制;

    解锁表 t。

    如果是大表,这里可以用可传输表空间方式备份、恢复表,减少锁表时间。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-20
数据库实际就是很多表的集合
所以复制库就是复制表
将表导出到
sql
文件
然后再导入
第2个回答  2019-03-16

sql语句
就行了
开始→运行→输入cmd,进入命令行模式,把目录切换到数据库bin目录下
mysqldump
-u
用户名
-p
密码
--database
数据库名
>
D:abc.sql
创建一个数据库,名字和原来的相同。
mysql
-u
用户名
-p
密码
--database
数据库名
<
D:abc.sql

MySQL数据库复制的三种方法mysql三种复制方式
1. 在原始MySQL服务器上,打开二进制日志记录功能,并设置二进制日志文件的名称和位置。可以通过在my.cnf文件中添加以下行来完成此操作:log-bin = \/var\/lib\/mysql\/mysql-bin.log server-id = 1 2. 在目标MySQL服务器上,设置server-id。可以通过在my.cnf文件中添加以下行来完成此操作:server-id...

如何复制MySQL数据库或表到另外一台服务器
1、打开SqlYog community Edition,分别在不同的选项卡中打开源数据库服务器与目标数据库服务器,这一点很重。在源数据库服务器选项卡中你将看到所有数据库列表。2、在需要复制迁移的数据库上右击,在弹出菜单中选择“Copy Database to Different Host\/Database”3、在弹出对话框中,我们能看到源数据库...

mysql怎么把a库视图全部复制到b库
1、在数据库amn中,新建视图view_amn(以t_amn表);然后使用Navicat客户端的数据传输功能,选择表t_amn和view_amn 2、点击下一步,确定传输的视图 3、点击开始,进行传输,传输到数据库student 4、传输成功后,打开视图view_amn并查看

如何将A数据库的数据迁移到B数据库中
mysql自带工具mysqldump可以导出表at成.sql文件,再把文件导入到bt表所在的数据库里。或者用其他第三方工具导出导入。sqlserver可以添加linkserver,oracle添加dblink都可以直接用别名加库名跨库访问,自身ui也都支持导出再导入。

怎么把mysql一个数据库从一台机器上 拷贝到另外一台
2、使用SQL语句备份和恢复 你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。语法:SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name LOAD DATA [LOW...

mysql怎样将一个数据库中的数据导入到另一个数据库中
1、启动该工具,设置好数据链接。2、先看下SQL SERVER中的数据,现在需要将这些数据导入到MySQL中。3、在MySQL中也建有同样的表,但在该表中做了点区别,age这个字段命名跟SQL SERVER中不一样,其余的都一样。4、点击工具栏中的下列按钮开始数据导入。5、根据提示操作。6、选择文件数据源。7、选择...

mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同
1、使用软件Navicat就可迁移复制数据库,打开Navicat,右键点击左边空白的地方,点击New Connection下的MySQL,创建一个服务器的连接,下面将演示把本地的数据迁移到服务器:2、在弹出的创建新连接的窗口里,输入服务器的IP,数据库账号,密码等,然后就可以连接数据库了:3、创建好后们打开本地的数据库,...

如何将mysql的一个完整数据库全部复制到另外一个数据库?
正确的修复步骤:1. 在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000),恢复到从库;2. 设置复制过滤,过滤表 t:CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');3. 启动复制,回放到 aaaa:10000 时停止复制(此时从库上所有表的数据都在同一状态,是一致的...

如何从一个mysql拷贝数据库到另一个mysql
1.先通过mysqdump将需要的数据导出到sql文件中,再通过mysql -uxxx -p -hxxx.xxx.x.xxx db2 < xx.sql的方式导入到数据库中。2.数据量不大可以自己写个脚本,如果数据量很大,可以先直接将MYI,MYD,FRM文件直接传到目标服务器的mysql对应的目录下。然后等mysql自动检查和修复数据后,就可以直接使用...

如何将mysql数据库一个database中的所有表合并到一个新表中
1.方法一:登录导出到的数据库,执行 create table fromtable select * from db1.fromtable;2.方法二:在cmd下执行,mysqldump -u root -p db1 fromtable file=d:\/fromtable.sql; 输入秘密,root为用户名 登录db2 执行 source d:\/fromtable.sql;3.方法三:登录db1 执行 select * from from...

相似回答