mysql 垮服务、垮库查询 Federated引擎
来源:互联网 发布:js动态增加删除表格 编辑:程序博客网 时间:2024/04/28 08:34
在/etc/my.cnf 的mysqld下面加入 federated
# ls -l /usr/local/mysql/lib/plugin/ha_federated.so -rwxr-xr-x 1 mysql mysql 308361 Jun 11 2014 /usr/local/mysql/lib/plugin/ha_federated.soSQL>install plugin federated soname 'ha_federated.so';# /usr/local/mysql/support-files/mysql.server restart
federated表样例
CREATE TABLE `opus` ( `opus_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '??id', `player_id` int(20) NOT NULL COMMENT '??ID', `opus_name` varchar(100) NOT NULL COMMENT '????', `create_time` datetime NOT NULL COMMENT '??????', `create_timestamp` bigint(20) DEFAULT NULL COMMENT '??????', `opus_hash` varchar(32) NOT NULL COMMENT '??Hash(????)', `song_hash` varchar(128) DEFAULT NULL COMMENT '??hash?', `opus_desc` varchar(300) DEFAULT NULL, `status` tinyint(2) DEFAULT '1' COMMENT '1:?? 0????? -1?????', `opus_parentid` bigint(20) DEFAULT '0' COMMENT '???id(0???????)', `listen_num` int(10) DEFAULT '0' COMMENT '???', `comment_num` int(10) DEFAULT '0' COMMENT '???', `praise_num` int(10) DEFAULT '0' COMMENT '??', `gift_person_num` int(10) DEFAULT '0' COMMENT '?????', `forward_num` int(10) DEFAULT '0' COMMENT '???', `modify_time` datetime DEFAULT NULL COMMENT '????', `song_from_type` tinyint(2) DEFAULT NULL COMMENT '?????0.?? 1.???', `song_id` int(11) NOT NULL COMMENT '??id', `ip` bigint(20) DEFAULT '0' COMMENT '??ip', `opus_time` int(11) DEFAULT '0' COMMENT '?????? ??s', `inviter_id` int(11) DEFAULT NULL, PRIMARY KEY (`opus_id`), KEY `opus_parentid` (`opus_parentid`), KEY `create_time` (`create_time`), KEY `player_id` (`player_id`), KEY `create_timestamp` (`create_timestamp`), KEY `song_id` (`song_id`)) ENGINE=federated connection="mysql://tempusr:temppass@10.1.3.30:3306/kugou_sing/opus";;/*Table structure for table `opus_lrc` */DROP TABLE IF EXISTS `opus_lrc`;CREATE TABLE `opus_lrc` ( `opus_id` int(11) NOT NULL COMMENT '??Id', `lrc_id` int(11) DEFAULT NULL COMMENT '??id', `song_name` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '???', `hash_key` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '???', `time_span` int(11) DEFAULT NULL COMMENT '??', `singer_name` varchar(30) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '???', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '????', `ajust` int(11) DEFAULT NULL COMMENT '????', `opsu_channel_id` int(11) DEFAULT '0', `snippet_ajust` int(11) DEFAULT NULL COMMENT '??a??–????“??‰???μ ?-?èˉ?????§??—?é—′', PRIMARY KEY (`opus_id`)) ENGINE=federated connection="mysql://tempusr:temppass@10.1.3.30:3306/kugou_sing/opus_lrc";CREATE TABLE `opus_gift` ( `opus_id` bigint(20) NOT NULL COMMENT '作品id', `player_id` int(11) NOT NULL COMMENT '送礼人的玩家id', `gift_id` int(11) NOT NULL COMMENT '礼物id', `num` int(11) NOT NULL COMMENT '数量', `last_modify_time` bigint(20) NOT NULL COMMENT '最后修改时间', UNIQUE KEY `opus_id` (`opus_id`,`player_id`,`gift_id`)) ENGINE=federated connection="mysql://tempusr:temppass@10.1.81.171:3306/kugou_sing_consume/opus_gift";
ENGINE=federated connection="mysql://tempusr:temppass@10.1.3.30:3306/kugou_sing/opus";;重点在于这里,需要连接到的库,就要在这个库授权:
grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。这里为了易用性你最好用root用户,因为别人远程的时候也会用,密码也要用root用户的密码,因为别人也是这么用的。(保证大家都用同一个登录信息访问同一个数据库,这是非常重要的)
123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
CODE: [COPY]
> flush privileges;
查看远程数据库的访问权限更新之后的情况:
全表federated=============================sh脚本
#!/bin/bash#获取远程数据表数据/usr/local/mysql/bin/mysql -h 10.1.0.211 -ufederated_user -p'kgfederated' -Ne "select table_name,':',table_schema from information_schema.tables where table_schema in ('d_fanxing','d_fanxing_log','d_fanxing_log2');" >> table_name.txt#将数据写入数组COUNT=`cat table_name.txt | wc -l`array_table_name=($(cut -d":" -f1 table_name.txt))array_table_schema=(`cut -d":" -f2 table_name.txt`)#编辑创建表SQL,如果涉及到数据库名的变更则需要适当修改for((i=0;i<$COUNT;i++)) do /usr/local/mysql/bin/mysql -h 10.1.0.211 -ufederated_user -p'kgfederated' -Ne "show create table \`${array_table_schema[i]}\`.\`${array_table_name[i]}\`;" > create_statement_src.sql sed -i "s#\`${array_table_name[i]}\`#\`${array_table_schema[i]}\`.\`${array_table_name[i]}\`#g" create_statement_src.sql sed -i "s#ENGINE=InnoDB#ENGINE=FEDERATED connection = 'mysql://federated_user:kgfederated@10.1.0.211:3306/${array_table_schema[i]}/${array_table_name[i]}'#g" create_statement_src.sql cat create_statement_src.sql >> create_statement_dst.sqldonesed -i "s/$/;/g" create_statement_dst.sqlcat create_statement_dst.sql | cut -f2 >> create_statement_dest_final.sql/usr/local/mysql/bin/mysql -uroot -p'kgsql@)!)tmp' --socket=/data2/mysql/3309/mysql3309.sock < create_statement_dest_final.sql
=========本地sql查询
mysql -h 10.1.0.0 -uuser -ppass -N < 2.sql > tmp/2rs.txt-N 不要表头
-e执行sql
2.sql 是要执行的sql语句
2rs.txt 是结果输出
- mysql 垮服务、垮库查询 Federated引擎
- MySQL FEDERATED 存储引擎
- MYSQL FEDERATED引擎开启
- MySQL---federated引擎
- 【MySQL】FEDERATED存储引擎
- MySQL 开启FEDERATED 引擎
- federated存储引擎 (mysql)
- MySQL FEDERATED引擎
- mysql启用federated引擎
- MySQL中的FEDERATED引擎
- mysql 跨数据库 查询,更新 federated引擎使用记录
- Mysql的跨服务器 关联查询--Federated引擎
- mysql federated存储引擎引擎
- MySQL FEDERATED引擎的使用
- MySQL 打开federated存储引擎
- MySQL存储引擎之 Federated
- 利用Federated引擎进行mysql复制
- 源码安装的mysql新增federated引擎
- 准备学习使用lua编程,
- drawable文件夹下的XML的selector节点详解(State List)
- pomelo前端服务器配置解析
- 复旦美女学霸张安琪的五个“神迹”和背后的真实故事
- Eclipse 快捷键大全
- mysql 垮服务、垮库查询 Federated引擎
- VMware虚拟机ubuntu系统和主机建立共享文件
- angular file upload 文件上传
- Android开发经验总结
- Linux内存管理之mmap详解
- Batch update returned unexpected row count from update [0]
- 重编译OpenCV库(Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41中)
- oracle group by rollup实现小计、合计
- Oracle中对数字加汉字的排序(完善)