加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

怎么在一个 mysql 服务的两个不同数据库 database或者是表 之间作同

发布时间:2022-11-19 14:00:38 所属栏目:MsSql教程 来源:网络
导读: 怎么在一个 mysql 服务的两个不同数据库 database或者是表 之间作同步
你是说本地的两个database之间的同步,所以不能用M-S方式是么?
---------------------------------------------
有主

怎么在一个 mysql 服务的两个不同数据库 database或者是表 之间作同步

你是说本地的两个database之间的同步,所以不能用M-S方式是么?

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

有主从么?实时性要求高么?

本回答由提问者推荐

mysql将一个表的数据同步到另一个表

Updateoluc_usera,playerbSetb.password=a.passwordWherea.id=b.id;

更多追问追答

貌似不行报错

望大神再次指点

#语法应该没错,把字段加上`试试

Update`oluc_user`a,`player`bSetb.`password`=a.`password`Wherea.`id`=b.`id`;

本回答由提问者推荐

Mysql中怎么用创建表

1.打开workbench,输入root密码,即可进入到了操作数据库界面;

2.选中目的数据库bd_book,然后在其下拉框下选择Create table;

3.然后在新建表项处,填写表名,列名以及其属性值。

Mysql半同步复制原理及问题排查

array { __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; 1024/64=16 (long int) }fd_set #define __FD_SET_SIZE 1024 typedef long int __fd_mask; //8个字节 #define __NFDBITS (8 * (int) sizeof (__fd_mask)) // 64位 #define __FDMASK(d) ((__fd_mask) 1 __fds_bits)#define __FD_SET(d, set) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d)) #define __FD_CLR(d, set) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d)) #define __FD_ISSET(d, set)((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0)

mysql中,怎么用触发器同步两个表?

首先,建立要用于测试的 数据库 与 表。

create database a;

create database b;

use a

create table table1(id int, val int);

use b

create table table2(id int, val int);

然后建触发器

use a

DELIMITER //

CREATE TRIGGER tr_Insert_t1

AFTER INSERT ON table1

FOR EACH ROW

BEGIN

-- 检查当前 环境,避免递归.

IF @disable_trigger IS NULL THEN

-- 设置禁用触发器标志.

SET @disable_trigger = 1;

-- 插入目标表

INSERT INTO

b.table2

VALUES

(new.id, new.val);

-- 恢复禁用触发器标志.

SET @disable_trigger = NULL;

END IF;

DELIMITER ;

use b

DELIMITER //

CREATE TRIGGER tr_Insert_t2

AFTER INSERT ON table2

FOR EACH ROW

BEGIN

-- 检查当前 环境,避免递归.

IF @disable_trigger IS NULL THEN

-- 设置禁用触发器标志.

SET @disable_trigger = 1;

-- 插入目标表

INSERT INTO

a.table1

VALUES

(new.id, new.val);

-- 恢复禁用触发器标志.

SET @disable_trigger = NULL;

END IF;

DELIMITER ;

测试执行效果:

mysql> use b

Database changed

mysql> insert into table2 values(2,2);

Query OK, 1 row affected (0.01 sec)

mysql> use a

Database changed

mysql> insert into table1 values (1, 1);

Query OK, 1 row affected (0.00 sec)

mysql> select * from table1;

+------+------+

| id| val |

+------+------+

|2 |2 |

|1 |1 |

+------+------+

2 rows in set (0.00 sec)

mysql> select * from b.table2;

+------+------+

| id| val |

+------+------+

|2 |2 |

|1 |1 |

+------+------+

2 rows in set (0.00 sec)update触发器如果你想通过2个表的触发器来实现"用户名、密码"的更新的数据同步,则是不可以的.

建议改变逻辑处理:

写一个共用的存储过程,然后在存储过程里同时实现2个表的数据更改即可.

如何同步数据库表结构 mysql

都是一个数据库里,直接用关联即可mssql数据库同步, 1。这样即可以省数据库空间, 2。还方便数据操作, 3。并且不要做二次数据插入! 4。而且绝对的同步!主机开两个窗口,一个进入mysql,一个是shell --主机阻断写操作 mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> SHOW MASTER STATUS在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:

mysqldump

最常用的:

mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql

这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数

c:\users\jack> mysqldump -uroot -pmysql sva_rec date_drv > e:\date_drv.sql

mysql的数据导入也是相当便捷的,如:

mysql -uroot databasefoo < foo.sql

这样就可以将foo.sql的数据全部导入数据库databasefoo

1.导出整个数据库

mysqldump -u用户名 -p密码 数据库名 > 导出的文件名

c:\users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql

2.导出一个表,包括表结构和数据

mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名

c:\users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql

3.导出一个数据库结构

c:\users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql

4.导出一个表,只有表结构

mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名

c:\users\jack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql

5.导入数据库

常用source 命令

进入mysql数据库控制台,

如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!