mysql怎么复制语句 mysql如何复制一条数据

如何复制mysql数据库到另一台电脑上?

这种架构一般用在以下三类场景

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的从江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。

2. 用来聚合前端多个 Server 的分片数据。

同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。

3. 汇总并合并多个 Server 的数据

第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?

怎么才能完整复制MySQL数据库

有两种办法。

1、在B机器上装mysql。

将A机器上的mysql/data下的你的数据库目录整个拷贝下来。

将B机器上的mysql服务停止。

找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。

2、使用SQL语句备份和恢复

你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。

语法:

SELECT * INTO {OUTFILE ¦ DUMPFILE} ’file_name’ FROM tbl_name

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE ¦ IGNORE]

INTO TABLE tbl_name

SELECT ... INTO OUTFILE ’file_name’

在dos命令提示符下使用mysqldump命令进行备份.

如下:

C:\Documents and Settings\Administratormysqldump yinshi c:\\backup.txt -uroot

-p12142022

mysql copy复制拷贝表数据及结构的几种方式

mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助。

假如我们有以下这样一个表:

id username password

-----------------------------------

1 admin *************

2 sameer *************

3 stewart *************

CREATE TABLE IF NOT EXISTS `admin` ( `id` int(6) unsigned NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)

CREATE TABLE newadmin LIKE admin

2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。

CREATE TABLE newadmin AS ( SELECT * FROM admin )

3. 如果你要真正的复制一个表。可以用下面的语句。

CREATE TABLE newadmin LIKE admin; INSERT INTO newadmin SELECT * FROM admin;

4. 我们可以操作不同的数据库。

CREATE TABLE newadmin LIKE shop.admin; CREATE TABLE newshop.newadmin LIKE shop.admin;

5. 我们也可以拷贝一个表中其中的一些字段。

CREATE TABLE newadmin AS ( SELECT username, password FROM admin )

6. 我们也可以讲新建的表的字段改名。

CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin )

7. 我们也可以拷贝一部分数据。

CREATE TABLE newadmin AS ( SELECT * FROM admin WHERE LEFT(username,1) = 's' )

8. 我们也可以在创建表的同时定义表中的字段信息。

mysql主从复制原理

主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。

对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

扩展资料

Mysq主从复制的类型

1、基于语句的复制:

主服务器上面执行的语句在从服务器上面再执行一遍,在MySQL-3.23版本以后支持。存在的问题:时间上可能不完全同步造成偏差,执行语句的用户也可能是不同一个用户。

2、基于行的复制:

把主服务器上面改变后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的,在MySQL-5.0版本以后引入。

mysql 数据库怎么复制一张表?

MySQL 复制表

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE … SELECT 命令,是无法实现的。

本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:

使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。

复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。

如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。

-from 树懒学堂 - 一站式数据知识平台

MySQL如何复制表中的一条记录并插入

先把需求说一下吧。从

MSSQL

中导出一个文章表,需要插入到

PHPCMS

中的内容表

phpcms_content

去,需要做到文章可以发布到不同的栏目中去。也就是说,需要复制一条记录,并修改其

catid,再插入到表尾的位置上。

MySQL复制一条数据并插入的语句:

INSERT

INTO

phpcms_content

(SELECT

".$r[$i]['aid']."

+

520,

".$r[$i]['cateid'].",

news_catid,

catid,

typeid,

areaid,

title,

style,

thumb,

keywords,

keywords,

posids,

url,

listorder,

status,

userid,

username,

inputtime,

updatetime,

searchid,

islink,

prefix

FROM

phpcms_content

WHERE

contentid

=

'".$r[$i-1]['aid']."')

大致为:insert

into

a

SELECT

id+1,

...(其它字段)

FROM

a

;

下面PHP具体程序:

$query

=

"SELECT

*

FROM

articleincategory

ORDER

BY

ArticleID

";

$result

=

$connector

-

query($query);$i

=

0;while($myrow

=

$connector

-

fetch_array($result)){$r[$i]['aid']

=

$myrow["ArticleID"];

$r[$i]['cateid']

=

$myrow["CategoryID"];$i++;}

for($i

=

0;

$i

count($r);

$i++){if($i

0){if(

$r[$i]['aid']

==

$r[$i-1]['aid']

){echo

'第

'.

$i.

'

条数据

'.

$r[$i]['aid']

.'

与前一条数据

'.

$r[$i-1]['aid']

.'

重复'.'/';

$sql

=

"

INSERT

INTO

phpcms_content

(SELECT

".$r[$i]['aid']."

+

520,

".$r[$i]['cateid'].",

news_catid,

catid,

typeid,

areaid,

title,

style,

thumb,

keywords,

keywords,

posids,

url,

listorder,

status,

userid,

username,

inputtime,

updatetime,

searchid,

islink,

prefix

FROM

phpcms_content

WHERE

contentid

=

'".$r[$i-1]['aid']."')

";

//$sql

=

"

INSERT

INTO

phpcms_c_news

(SELECT

".$r[$i]['aid']."

+

520,

template,

titleintact,

content,

groupids_view,

readpoint,

author,

copyfrom,

paginationtype,

maxcharperpage,

sub_title

FROM

phpcms_c_news

WHERE

contentid

=

'".$r[$i-1]['aid']."')

";

echo

$sql.'

/';

//$result

=

$connector

-

query($sql);

//INSERT

INTO

test

(SELECT

id

+

10,

name,

class,

score

FROM

test

WHERE

id

=

'1');}

else

if(

$r[$i]['aid']

!=

$r[$i-1]['aid']

){$sql

=

"

UPDATE

phpcms_content

SET

origin_cateid

=

'".$r[$i]['cateid']."'

WHERE

contentid

=

'".$r[$i]['aid']."'

";

echo

$sql.'

/';

//$result

=

$connector

-

query($sql);}}}如果不需要插入


当前标题:mysql怎么复制语句 mysql如何复制一条数据
文章链接:http://scyanting.com/article/hpcojj.html