什么系统?两个库是不是在同一台机?
linux下个人做法:
1.同一台机
用mysqlmp导出表数据(具体使用可以查一下)
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
--default-character-set=utf8
--add-drop-table
tablename
-r
/tmp/table.sql
再导入数据
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
tablename
</tmp/tablename.sql
或者在进入mysql后用source命令导入。
2.不同的机,就需要先把数据文件导出,然后复制到另外一台机,再进行1的导入操作。
windows下没试过,一般都直接用phpMyAdmin来操作了,界面操作没什么说的。
Ⅱ MySQL如何复制表中的一条记录并插入
1、打开navicat软件,打开要复制表的数据库,如下图所示:
Ⅲ 如何对MySQL数据表进行复制,表结构复制
1、复制表结构(语法
creata
table
旧表
select
*
from
新表)
create
table
t1(
id
int
unsigned
auto_increment
primary
key,
name
varchar(32)
not
null
default
'',
pass
int
not
null
default
0
);
desc
查看表结构
创建表
t2
同时复制表
t1
表结构
create
table
t2
select
*
from
t1;
desc
t2
查看表结构
注意:两张的表字段结构一样,但是
主键
primary
key
和
自增
auto_increment
没有了,所以这种方法不推荐大家使用,那如何才能创建出两张完全一样的表呢,办法肯定有的,如下面语句。
create
table
t2
like
t1;
这就可以创建一张
t2
和
t1
完全一样的表了。
2、指定字段复制表结构
语法:
create
table
新表
select
字段1,字段2
…
from
旧表
3、复制表中数据
假设要把表
t1
中的数据全部复制到表
t2中
insert
into
t2
select
*from
t1;
如果只想复制某个字段
insert
into
t2(字段1,字段2)
select
字段1,字段2from
t1;
Ⅳ 求MySQL复制表数据的sql语句
insert
into
table
b
(xxx)
select
'name'
from
table
a
----插入a表数据进b表
select
*
from
table
b
order
by
id
----查看插入后b表的数据
(注:前提是b表的id字段不能为null
启用标识
递增量为
1)
Ⅳ 如何将mysql中的一个表复制到sqlserver中
1:MSSQLServer数据库导入到MySql数据库
步骤:
1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3.51.23-win32.msi,下载并安装。
2.在Mysql中创建数据库实例。
3.打开控制面板 --> 管理工具 --> 数据源ODBC,在用户DSN中添加一个MySQL ODBC 3.51数据源。
4.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库,Database选择你需要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql Server可能会出现问号乱码。
5.打开sql server企业管理器,选择该数据库,单击右键选择所有任务 --> 导出数据。
6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mySQL数据源,用户/系统DSN为MysqlDNS。在‘指定表复制或查询’中选择‘从源数据库复制表和视图’,在‘选择源表和视图’里,选择需要导入的表,即可将数据从MSSQLServer数据库导入到MySql数据库中。
2:MySql数据库导入到MSSQL数据库中
1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3.51.19-win32.msi
2.打开控制面板\管理工具\数据源ODBC,在用户DSN中添加一个MySQL ODBC 3.51数据源。
3.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS;然后输入服务器,用户User,密码Password,输入正确后选择要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql 可能会出现问号乱码。
4.打开sql server企业管理器,新建一数据库MySql。选择该数据库,单击右键选择所有任务\导入数据。
5.选择数据源为其它(ODBC数据源),用户/系统DSN为MysqlDNS。其余根据向导进行,即可将数据从MySql数据库导入到MSSQL数据库中
Ⅵ mysql数据库如何将相同数据库中的一个表的数据复制到另一个表中
你建表复制就可以了,例如CREATE TABLE aa AS SELECT * FROM tree;这是完全复制tree表的数据及表结构到aa表中。假如要复制某些字段的话,如:insert into 表名user(表中字段sal) select sal from emp;插入某一列sal到user表中,从emp表中获取sal的数据信息。最后提醒下,Oracle和MySql复制表建表 一样,可以自己建表结构,再复制数据;也可以复制部分列和部分数据,分开操作。 但要保证数据类型一致,插入指定列数,列数要相同,列的长度空间大就可以了。
Ⅶ 在MySQL中如何复制表
这个确实简单
mysql支持这种复制
语法:
insert
into
`tb`(`field1`,`field2`..)
select
`field1`,`field2`..
from
`tb`;
注意修改为你自己的表名和字段名
两个字段列表(`field1`,`field2`..)数量要相同
你要全字段复制,就把除了自增字段之外的所有字段都列出来
Ⅷ 如何将mysql的一个完整数据库全部复制到另外一个数据库
如果从库上表 t 数据与主库不一致,导致复制错误,整个库的数据量很大,重做从库很慢,如何单独恢复这张表的数据?通常认为是不能修复单表数据的,因为涉及到各表状态不一致的问题。下面就列举备份单表恢复到从库会面临的问题以及解决办法:
场景 1
如果复制报错后,没有使用跳过错误、复制过滤等方法修复主从复制。主库数据一直在更新,从库数据停滞在报错状态(假设 GTID 为 aaaa:1-100)。
修复步骤:
在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000);
恢复到从库;
启动复制。
- CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');
- START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';
在主库上备份表 t (假设备份快照 GTID为 aaaa:1-10000);
停止从库复制,GTID为 aaaa:1-20000;
恢复表 t 到从库;
启动复制。
对表 t 加读锁;
在主库上备份表 t;
停止从库复制,恢复表 t;
启动复制;
解锁表 t。
这里的问题是复制起始位点是 aaaa:101,从库上表 t 的数据状态是领先其他表的。aaaa:101-10000 这些事务中只要有修改表 t 数据的事务,就会导致复制报错 ,比如主键冲突、记录不存在(而 aaaa:101 这个之前复制报错的事务必定是修改表 t 的事务)
解决办法:启动复制时跳过 aaaa:101-10000 这些事务中修改表 t 的事务。
正确的修复步骤:
1. 在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000),恢复到从库;
2. 设置复制过滤,过滤表 t:
3. 启动复制,回放到 aaaa:10000 时停止复制(此时从库上所有表的数据都在同一状态,是一致的);
4. 删除复制过滤,正常启动复制。
注意事项:这里要用 mysqlmp --single-transaction --master-data=2,记录备份快照对应的 GTID
场景 2
如果复制报错后,使用跳过错误、复制过滤等办法修复了主从复制。主、从库数据一直在更新。
修复步骤:
这里的问题是复制起始位点是 aaaa:20001,aaaa:10000-20000 这些事务将不会在从库上回放,如果这里面有修改表 t 数据的事务,从库上将丢失这部分数据。
解决办法:从备份开始到启动复制,锁定表 t,保证 aaaa:10000-20000 中没有修改表 t 的事务。
正确修复步骤:
如果是大表,这里可以用可传输表空间方式备份、恢复表,减少锁表时间。