mysql命令行怎么复制 mysql如何复制

mysql中的字段怎么复制MySQL 8.0.17 clone 插件的安装和验证过程
安装非常简单,与安装其他插件的工作方式相同 。下面是安装克隆插件的命令行:
master [localhost:45008] ((none))INSTALL PLUGIN clone SONAME 'mysql_clone.so';Query OK, 0 rows affected (0.00 sec)
以及如何检查克隆插件是否处于活动状态:master [localhost:45008] ((none))SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINSWHERE PLUGIN_NAME LIKE 'clone'; ------------- --------------- | PLUGIN_NAME | PLUGIN_STATUS | ------------- --------------- | clone | ACTIVE | ------------- --------------- 1 row in set (0.00 sec)
请注意,这些步骤需要在 Donor(供体)和 Recipient(受体,也成为 Slave)上都执行 。执行安装后,插件将在重新启动后自动加载,因此您不必再担心这一点 。接下来,我们将在 Donor 上创建具有必要权限的用户,这样我们就可以远程连接到实例来克隆它 。
master [localhost:45008] ((none))create user clone_user@'%' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
master [localhost:45008] ((none))GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';
Query OK, 0 rows affected (0.00 sec)
作为安全措施,我建议将百分号 % 替换为从机的 IP、主机名或网络掩码,以便只有未来的从服务器才能接受连接 。现在,从服务器上,克隆用户需要CLONE_ADMIN 权限来替换从机数据,在克隆操作期间阻止 DDL 并自动重新启动服务器 。
slave1 [localhost:45009] ((none))create user clone_user@'localhost' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
slave1 [localhost:45009] ((none))GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
接下来,安装并验证插件,并在主和从服务器上创建用户 。
克隆过程
如上所述,克隆过程可以在本地或远程执行 。此外,它支持复制,这意味着克隆操作从捐赠者提取和传输复制坐标并将其应用于收件人 。它可用于 GTID 或非 GTID 复制 。因此,要开始克隆过程,首先,让我们确保有一个有效的供体(Master) 。这由 clone_valid_donor_list 参数控制 。由于它是动态参数,您可以在服务器运行时进行更改 。使用 show variables 命令将显示参数是否具有有效的供体(Master):slave1 [localhost:45009] ((none))SHOW VARIABLES LIKE 'clone_valid_donor_list'; ------------------------ ------- | Variable_name | Value | ------------------------ ------- | clone_valid_donor_list | | ------------------------ ------- 1 row in set (0.01 sec)
例子中,我们需要对它进行设置:slave1 [localhost:45009] ((none))set global clone_valid_donor_list = '127.0.0.1:45008';Query OK, 0 rows affected (0.00 sec)
下一步不是强制性的,但使用默认的 log_error_verbosity,错误日志不会显示有关克隆进度的大量信息 。所以,对于这个例子,我会将详细程度调整到更高的级别(在供体和受体机上):mysqlset global log_error_verbosity=3;Query OK, 0 rows affected (0.00 sec)
现在,让我们在受体(Slave)上开始克隆过程:slave1 [localhost:45009] ((none))CLONE INSTANCE FROM clone_user@127.0.0.1:45008 identified by 'sekret';Query OK, 0 rows affected (38.58 sec)
mysql中用命令行复制表结构的方法主要有一下几种假如我们有以下这样一个表:
idusernamepassword
-----------------------------------
1admin*************
2sameer*************
3stewart*************
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命令行怎么复制 mysql如何复制】有两种办法 。
1、在B机器上装mysql 。
将A机器上mysql命令行怎么复制的mysql/data下mysql命令行怎么复制的你的数据库目录整个拷贝下来 。
将B机器上的mysql服务停止 。
找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去 , 然后启动mysql服务就可以了 。
2、使用SQL语句备份和恢复
你可以使用SELECTINTOOUTFILE语句备份数据 , 并用LOADDATAINFILE语句恢复数据 。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构 。
语法:
SELECT*INTO{OUTFILE|DUMPFILE}’file_name’FROMtbl_name
LOADDATA[LOW_PRIORITY][LOCAL]INFILE’file_name.txt’[REPLACE|IGNORE]
INTOTABLEtbl_name
SELECT...INTOOUTFILE’file_name’
在dos命令提示符下使用mysqldump命令进行备份.
如下:
C:\DocumentsandSettings\Administratormysqldumpyinshic:\\backup.txt-uroot
-p12142022
mysql如何复制数据到同一张表?在利用数据库开发时mysql命令行怎么复制,常常会将一些表之间mysql命令行怎么复制的数据互相导入 。当然可以编写程序实现mysql命令行怎么复制,但是mysql命令行怎么复制,程序常常需要开发环境,不方便 。最方便是利用sql语言直接导入 。既方便而修改也简单 。以下就是导入mysql命令行怎么复制的方法 。
1、 表结构相同的表,且在同一数据库(如,table1,table2)
Sql :
复制代码代码如下:
insert into table1 select*from table2 (完全复制)
insert into table1 selectdistinct*from table2(不复制重复纪录)
insert into table1 selecttop 5 *fromtable2 (前五条纪录)
2、不在同一数据库中(如,db1 table1,db2 table2)
sql:
[code]
insert into db1.table1 select*from db2.table2 (完全复制)
insert into db1.table1 selectdistinct*from db2table2(不复制重复纪录)
insert into tdb1.able1 selecttop 5 *fromdb2table2 (前五条纪录)
3、表结构不同的表或复制部分纪录(如,dn_user,dn_user2)
a.建一个新表[DN_UserTemp](在老表dn_user上增加一列)
复制代码代码如下:
CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL)
[Id] [idtype] NOT NULL ,
[Name] [fntype] NOT NULL ,
[Descript] [dstype] NULL ,
[LogonNm] [idtype] NOT NULL ,
[Password] [idtype] NULL ,
[Gender] [char] (1) NULL ,
[Quited] [booltype] NOT NULL,
[OffDuty] [booltype] NOT NULL ,
[Stopped] [booltype] NOT NULL,
[OSBind] [booltype] NOT NULL,
[Domain] [idtype] NULL ,
[EMail] [fntype] NULL ,
[UnitId] [idtype] NULL ,
[BranchId] [idtype] NULL ,
[DutyId] [idtype] NULL ,
[LevelId] [idtype] NULL ,
[ClassId] [idtype] NULL ,
[TypeId] [idtype] NULL ,
[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[ExpireDT] [datetime] NULL ,
[Sort] [int] NOT NULL ,
[AllowDel] [booltype] NOT NULL,
[UnitChief] [booltype] NOT NULL,
[BranchChief] [booltype] NOT NULL ,
[UnitDeputy] [booltype] NOT NULL ,
[BranchDeputy] [booltype] NOT NULL ,
[Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
b. 将dn_uer2的数据拷入dn_usertemp
sql:insert into dn_usertemp select * from dn_user2
c.将dn_usertemp 拷入dn_user
sql:
复制代码代码如下:
declare@i int
declare@j int
declare@Name fntype
set @i=1
select @j=count(*) from dn_usertemp
while @i@j 1
begin
select @Name=Name from dn_usertemp where Num=@i
print @Name
insert into dn_user (Name) values (@Name) where Num=@i
select @i=@i 1
end
MySql数据库复制表数据
将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:
复制代码代码如下:
CREATE TABLE mytbl_new LIKE production.mytbl;
INSERT mytbl_new SELECT * FROM production.mytbl;
第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构 。
第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new。
注:production.mytbl是指定要复制表的数据库名称为 production。它是可选的 。
假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库 。
另外:在mysql数据库中复制数据为:
复制代码代码如下:
select * into desTable from sourceTable在mssql中支持,在mysql中不支持
insert into desTable select * from sourceTable
mysql命令行怎么复制的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql如何复制、mysql命令行怎么复制的信息别忘了在本站进行查找喔 。

    推荐阅读