怎么在一个 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 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |