好的,谢谢,我明天试一下!
本回答被提问者采纳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,错误日志不会显示有关克隆进度的大量信息。所以,对于这个例子,我会将详细程度调整到更高的级别(在供体和受体机上):mysql > set 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怎么把表中一个字段数据复制到另外一个表的某个字段下
update b set tel =(select mobile from a where a.id=b.aid)注:aid是a,b两个表的关联字段
如何利用MySQL实现两个表之间的数据复制mysql两表复制数据
1.创建源表和目标表 在MySQL中,首先需要创建源表和目标表。源表是包含要复制的数据的表,而目标表是接收这些数据的表。创建表时需要注意表结构的一致性,例如字段名称、数据类型和大小等。使用下面的代码创建两个简单的表,以便在源表和目标表之间进行数据复制。CREATE TABLE `source_table` (`id` ...
mysql怎么把一表某字段值赋给另一表新字段?
update tbl1,tbl2 set tbl1.title=tbl2.title where tbl1.id=tbl2.id 用这个sql语句就可以
mysql中在同一张表如何将一条记录的某一字段的值赋值给另一条记录的相...
update语句可以搞定,但是需要join配合,例如,有个表如下,需要将id =999对应的name改为id=1000对应的name 可以这么做:update person t1 join (select id,name from person where id = 1000 limit 1 ) as t2 on t1.id <= t2.id set t1.name = t2.name where t1.id = 999 and t2.id...
sql怎么把一个表中字段的部分内容替换成另一个表字段的内容
mysql可以用以下方法 -- tableb 通过 aid 关联tablea 的id,把tableb的fielda字段写入tablea的fielda字段UPDATE tablea SET fielda = (select fielda from tableb where tablea.id=tableb.aid)-- 关联方式一样,把tablea中fielda的字段中的特定字符串替换成tableb中指定字段的值update tablea ...
Mysql 怎样将一个数据库中表 数据 插入到 另一个数据库 表中
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:insert into insertTest select*from insertTest2;2.如果只希望导入指定字段,可以用这种方法:insert into insertTest2(id) select id from insertTest2;
mysql把A表数据插入到B表数据的几种方法
下面我以mysql数据库为例分情况一一说明:1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:INSERT INTO 目标表 SELECT * FROM 来源表;insertintoinsertTestselect*frominsertTest2;2.如果只希望导入指定字段,可以用这种方法:INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, ...
mysql怎样将一个数据库中的数据导入到另一个数据库中
1、启动该工具,设置好数据链接。2、先看下SQL SERVER中的数据,现在需要将这些数据导入到MySQL中。3、在MySQL中也建有同样的表,但在该表中做了点区别,age这个字段命名跟SQL SERVER中不一样,其余的都一样。4、点击工具栏中的下列按钮开始数据导入。5、根据提示操作。6、选择文件数据源。7、选择...
mysql怎么将一张表的某个字段的至插入到另一张表的某个字段
1. 表结构完全一样 insert into 表1 select * from 表2 2. 表结构不一样(这种情况下得指定列名)insert into 表1 (列名1,列名2,列名3)select 列1,列2,列3 from 表2
如何将mysql中的数据导到另一个mysql数据库中?
就是和数据库表名对应的.frm.myd.myi文件)拷到导入方(注意一个表有三个文件),然后改一下数据表文件名成你要导入的表名,然后启动mysql服务 ,如果导入方原来的表有数据,可以把原来的数据用正常方式导出,然后在工具里面导入合并就可以了,再有一个可行的方法就是自写代码一行一行的转移数据了 ...