2
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
5
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
8
DROP DATABASE IF EXISTS federated;
9
CREATE DATABASE federated;
10
DROP DATABASE IF EXISTS federated;
11
CREATE DATABASE federated;
12
create database first_db;
13
create database second_db;
15
DROP TABLE IF EXISTS first_db.t1;
17
Note 1051 Unknown table 't1'
18
CREATE TABLE first_db.t1 (
19
`id` int(20) NOT NULL,
20
`name` varchar(64) NOT NULL default ''
22
DEFAULT CHARSET=latin1;
23
DROP TABLE IF EXISTS first_db.t2;
25
Note 1051 Unknown table 't2'
26
CREATE TABLE first_db.t2 (
27
`id` int(20) NOT NULL,
28
`name` varchar(64) NOT NULL default ''
30
DEFAULT CHARSET=latin1;
32
DROP TABLE IF EXISTS second_db.t1;
34
Note 1051 Unknown table 't1'
35
CREATE TABLE second_db.t1 (
36
`id` int(20) NOT NULL,
37
`name` varchar(64) NOT NULL default ''
39
DEFAULT CHARSET=latin1;
40
DROP TABLE IF EXISTS second_db.t2;
42
Note 1051 Unknown table 't2'
43
CREATE TABLE second_db.t2 (
44
`id` int(20) NOT NULL,
45
`name` varchar(64) NOT NULL default ''
47
DEFAULT CHARSET=latin1;
48
drop server if exists 'server_one';
49
create server 'server_one' foreign data wrapper 'mysql' options
57
drop server if exists 'server_two';
58
create server 'server_two' foreign data wrapper 'mysql' options
66
select * from mysql.servers;
67
Server_name Host Db Username Password Port Socket Wrapper Owner
68
server_one 127.0.0.1 first_db root SLAVE_PORT mysql root
69
server_two 127.0.0.1 second_db root SLAVE_PORT mysql root
70
DROP TABLE IF EXISTS federated.old;
72
Note 1051 Unknown table 'old'
73
CREATE TABLE federated.old (
74
`id` int(20) NOT NULL,
75
`name` varchar(64) NOT NULL default ''
77
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
78
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/first_db/t1';
79
INSERT INTO federated.old (id, name) values (1, 'federated.old-> first_db.t1, url format');
80
SELECT * FROM federated.old;
82
1 federated.old-> first_db.t1, url format
83
DROP TABLE IF EXISTS federated.old2;
85
Note 1051 Unknown table 'old2'
86
CREATE TABLE federated.old2 (
87
`id` int(20) NOT NULL,
88
`name` varchar(64) NOT NULL default ''
90
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
91
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/first_db/t2';
92
INSERT INTO federated.old2 (id, name) values (1, 'federated.old2-> first_db.t2, url format');
93
SELECT * FROM federated.old2;
95
1 federated.old2-> first_db.t2, url format
96
DROP TABLE IF EXISTS federated.urldb2t1;
98
Note 1051 Unknown table 'urldb2t1'
99
CREATE TABLE federated.urldb2t1 (
100
`id` int(20) NOT NULL,
101
`name` varchar(64) NOT NULL default ''
103
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
104
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/second_db/t1';
105
INSERT INTO federated.urldb2t1 (id, name) values (1, 'federated.urldb2t1 -> second_db.t1, url format');
106
SELECT * FROM federated.urldb2t1;
108
1 federated.urldb2t1 -> second_db.t1, url format
109
DROP TABLE IF EXISTS federated.urldb2t2;
111
Note 1051 Unknown table 'urldb2t2'
112
CREATE TABLE federated.urldb2t2 (
113
`id` int(20) NOT NULL,
114
`name` varchar(64) NOT NULL default ''
116
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
117
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/second_db/t2';
118
INSERT INTO federated.urldb2t2 (id, name) values (1, 'federated.urldb2t2 -> second_db.t2, url format');
119
SELECT * FROM federated.urldb2t2;
121
1 federated.urldb2t2 -> second_db.t2, url format
122
DROP TABLE IF EXISTS federated.t1;
124
Note 1051 Unknown table 't1'
125
CREATE TABLE federated.t1 (
126
`id` int(20) NOT NULL,
127
`name` varchar(64) NOT NULL default ''
129
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
130
CONNECTION='server_one';
131
INSERT INTO federated.t1 (id, name) values (1, 'server_one, new scheme, first_db.t1');
132
SELECT * FROM federated.t1;
134
1 federated.old-> first_db.t1, url format
135
1 server_one, new scheme, first_db.t1
136
DROP TABLE IF EXISTS federated.whatever;
138
Note 1051 Unknown table 'whatever'
139
CREATE TABLE federated.whatever (
140
`id` int(20) NOT NULL,
141
`name` varchar(64) NOT NULL default ''
143
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
144
CONNECTION='server_one/t1';
145
INSERT INTO federated.whatever (id, name) values (1, 'server_one, new scheme, whatever, first_db.t1');
146
SELECT * FROM federated.whatever;
148
1 federated.old-> first_db.t1, url format
149
1 server_one, new scheme, first_db.t1
150
1 server_one, new scheme, whatever, first_db.t1
151
ALTER SERVER 'server_one' options(DATABASE 'second_db');
152
INSERT INTO federated.t1 (id, name) values (1, 'server_two, new scheme, second_db.t1');
153
SELECT * FROM federated.t1;
155
1 federated.urldb2t1 -> second_db.t1, url format
156
1 server_two, new scheme, second_db.t1
157
INSERT INTO federated.whatever (id, name) values (1, 'server_two, new scheme, whatever, second_db.t1');
158
SELECT * FROM federated.whatever;
160
1 federated.urldb2t1 -> second_db.t1, url format
161
1 server_two, new scheme, second_db.t1
162
1 server_two, new scheme, whatever, second_db.t1
163
drop table federated.t1;
164
drop server 'server_one';
165
drop server 'server_two';
166
select * from mysql.servers;
167
Server_name Host Db Username Password Port Socket Wrapper Owner
168
drop table first_db.t1;
169
drop table second_db.t1;
170
drop database first_db;
171
drop database second_db;
172
create database db_legitimate;
173
create database db_bogus;
175
CREATE TABLE db_legitimate.t1 (
176
`id` int(20) NOT NULL,
177
`name` varchar(64) NOT NULL default ''
179
INSERT INTO db_legitimate.t1 VALUES ('1','this is legitimate');
181
CREATE TABLE db_bogus.t1 (
182
`id` int(20) NOT NULL,
183
`name` varchar(64) NOT NULL default ''
186
INSERT INTO db_bogus.t1 VALUES ('2','this is bogus');
187
create server 's1' foreign data wrapper 'mysql' options
189
DATABASE 'db_legitimate',
195
create user guest_select@localhost;
196
grant select on federated.* to guest_select@localhost;
197
create user guest_super@localhost;
198
grant select,SUPER,RELOAD on *.* to guest_super@localhost;
199
create user guest_usage@localhost;
200
grant usage on *.* to guest_usage@localhost;
201
CREATE TABLE federated.t1 (
202
`id` int(20) NOT NULL,
203
`name` varchar(64) NOT NULL default ''
204
) ENGINE = FEDERATED CONNECTION = 's1';
205
select * from federated.t1;
208
alter server s1 options (database 'db_bogus');
209
ERROR 42000: Access denied; you need the SUPER privilege for this operation
211
select * from federated.t1;
214
alter server s1 options (database 'db_bogus');
215
ERROR 42000: Access denied; you need the SUPER privilege for this operation
217
select * from federated.t1;
220
alter server s1 options (database 'db_bogus');
222
select * from federated.t1;
225
drop server if exists 's1';
226
ERROR 42000: Access denied; you need the SUPER privilege for this operation
227
create server 's1' foreign data wrapper 'mysql' options
229
DATABASE 'db_legitimate',
235
ERROR 42000: Access denied; you need the SUPER privilege for this operation
237
create server 's1' foreign data wrapper 'mysql' options
239
DATABASE 'db_legitimate',
246
select * from federated.t1;
249
drop database db_legitimate;
250
drop database db_bogus;
251
drop user guest_super@localhost;
252
drop user guest_usage@localhost;
253
drop user guest_select@localhost;
254
drop table federated.t1;
256
create server 's1' foreign data wrapper 'mysql' options (port 4427);
257
alter server 's1' options
258
(host 'localhost', database '', user '',
259
password '', socket '', owner '', port 4427);
260
alter server 's1' options
261
(host 'localhost', database 'database1', user '',
262
password '', socket '', owner '', port 4427);
266
create procedure p1 ()
268
DECLARE v INT DEFAULT 0;
269
DECLARE e INT DEFAULT 0;
271
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e = e + 1;
275
FOREIGN DATA WRAPPER mysql
276
OPTIONS (USER 'Remote', HOST '192.168.1.106', DATABASE 'test');
277
ALTER SERVER s OPTIONS (USER 'Remote');
291
drop server if exists s;
292
DROP TABLE IF EXISTS federated.t1;
293
DROP DATABASE IF EXISTS federated;
294
DROP TABLE IF EXISTS federated.t1;
295
DROP DATABASE IF EXISTS federated;