2002-12-05 12:01:15 +01:00
|
|
|
# This test is to check various cases of connections
|
2005-10-12 13:56:07 +02:00
|
|
|
# with right and wrong password, with and without database
|
|
|
|
# Unfortunately the check is incomplete as we can't connect without database
|
2002-12-05 12:01:15 +01:00
|
|
|
|
2005-03-30 01:50:16 +02:00
|
|
|
# This test makes no sense with the embedded server
|
|
|
|
--source include/not_embedded.inc
|
|
|
|
|
2006-01-19 03:56:06 +01:00
|
|
|
# check that CSV engine was compiled in, as the test relies on the presence
|
|
|
|
# of the log tables (which are CSV-based). By connect mysql; show tables;
|
|
|
|
--source include/have_csv.inc
|
|
|
|
|
2005-09-08 10:09:30 +02:00
|
|
|
--disable_warnings
|
|
|
|
drop table if exists t1,t2;
|
|
|
|
--enable_warnings
|
|
|
|
|
2005-10-12 13:56:07 +02:00
|
|
|
|
2002-12-05 12:01:15 +01:00
|
|
|
#connect (con1,localhost,root,,"");
|
|
|
|
#show tables;
|
|
|
|
connect (con1,localhost,root,,mysql);
|
|
|
|
show tables;
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con2,localhost,root,,test);
|
2002-12-05 12:01:15 +01:00
|
|
|
show tables;
|
|
|
|
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,root,z,test2);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,root,z,);
|
2002-12-05 12:01:15 +01:00
|
|
|
|
|
|
|
grant ALL on *.* to test@localhost identified by "gambling";
|
|
|
|
grant ALL on *.* to test@127.0.0.1 identified by "gambling";
|
|
|
|
|
|
|
|
# Now check this user with different databases
|
|
|
|
#connect (con1,localhost,test,gambling,"");
|
|
|
|
#show tables;
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con3,localhost,test,gambling,mysql);
|
2002-12-05 12:01:15 +01:00
|
|
|
show tables;
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con4,localhost,test,gambling,test);
|
2002-12-05 12:01:15 +01:00
|
|
|
show tables;
|
|
|
|
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,,test2);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,,"");
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,zorro,test2);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,zorro,);
|
2002-12-05 12:01:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
# check if old password version also works
|
2004-07-08 15:54:07 +02:00
|
|
|
update mysql.user set password=old_password("gambling2") where user=_binary"test";
|
2002-12-05 12:01:15 +01:00
|
|
|
flush privileges;
|
|
|
|
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con10,localhost,test,gambling2,);
|
|
|
|
connect (con5,localhost,test,gambling2,mysql);
|
2006-10-03 15:33:44 +02:00
|
|
|
connection con5;
|
2004-08-26 17:26:38 +02:00
|
|
|
set password="";
|
2004-10-28 13:02:09 +02:00
|
|
|
--error 1372
|
2004-07-30 22:05:08 +02:00
|
|
|
set password='gambling3';
|
2003-07-08 00:36:14 +02:00
|
|
|
set password=old_password('gambling3');
|
2002-12-05 12:01:15 +01:00
|
|
|
show tables;
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con6,localhost,test,gambling3,test);
|
2002-12-05 12:01:15 +01:00
|
|
|
show tables;
|
|
|
|
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,,test2);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,,);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,zorro,test2);
|
2005-11-07 22:30:44 +01:00
|
|
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
2005-10-12 13:56:07 +02:00
|
|
|
--error 1045
|
|
|
|
connect (fail_con,localhost,test,zorro,);
|
2003-06-13 11:17:31 +02:00
|
|
|
|
2003-07-08 00:36:14 +02:00
|
|
|
|
2003-06-13 11:17:31 +02:00
|
|
|
# remove user 'test' so that other tests which may use 'test'
|
|
|
|
# do not depend on this test.
|
2003-07-08 00:36:14 +02:00
|
|
|
|
2004-07-08 15:54:07 +02:00
|
|
|
delete from mysql.user where user=_binary"test";
|
2003-06-13 11:17:31 +02:00
|
|
|
flush privileges;
|
2005-07-28 02:22:47 +02:00
|
|
|
|
2005-09-08 10:09:30 +02:00
|
|
|
#
|
|
|
|
# Bug#12517: Clear user variables and replication events before
|
|
|
|
# closing temp tables in thread cleanup.
|
2005-10-12 13:56:07 +02:00
|
|
|
connect (con7,localhost,root,,test);
|
|
|
|
connection con7;
|
2005-08-30 15:22:19 +02:00
|
|
|
create table t1 (id integer not null auto_increment primary key);
|
|
|
|
create temporary table t2(id integer not null auto_increment primary key);
|
|
|
|
set @id := 1;
|
|
|
|
delete from t1 where id like @id;
|
2005-10-12 13:56:07 +02:00
|
|
|
disconnect con7;
|
2005-09-08 10:09:30 +02:00
|
|
|
--sleep 5
|
|
|
|
connection default;
|
|
|
|
drop table t1;
|
2005-08-30 15:22:19 +02:00
|
|
|
|
2008-03-12 15:44:40 +01:00
|
|
|
--disconnect con1
|
|
|
|
--disconnect con2
|
|
|
|
--disconnect con3
|
|
|
|
--disconnect con4
|
|
|
|
--disconnect con5
|
|
|
|
--disconnect con6
|
|
|
|
--disconnect con10
|
|
|
|
|
|
|
|
--echo # ------------------------------------------------------------------
|
|
|
|
--echo # -- End of 4.1 tests
|
|
|
|
--echo # ------------------------------------------------------------------
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Bug#33507: Event scheduler creates more threads than max_connections
|
|
|
|
--echo # -- which results in user lockout.
|
|
|
|
--echo
|
|
|
|
|
|
|
|
GRANT USAGE ON *.* TO mysqltest_u1@localhost;
|
|
|
|
|
|
|
|
# NOTE: if the test case fails sporadically due to spurious connections,
|
|
|
|
# consider disabling all users.
|
|
|
|
|
|
|
|
--echo
|
|
|
|
|
|
|
|
let $saved_max_connections = `SELECT @@global.max_connections`;
|
|
|
|
|
|
|
|
SET GLOBAL max_connections = 3;
|
|
|
|
SET GLOBAL event_scheduler = ON;
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Waiting for old connections to close...
|
|
|
|
let $wait_condition =
|
|
|
|
SELECT COUNT(*) = 1
|
|
|
|
FROM information_schema.processlist
|
|
|
|
WHERE db = 'test';
|
|
|
|
--source include/wait_condition.inc
|
|
|
|
|
|
|
|
--echo
|
|
|
|
let $wait_condition =
|
|
|
|
SELECT COUNT(*) = 1
|
|
|
|
FROM information_schema.processlist
|
|
|
|
WHERE user = 'event_scheduler';
|
|
|
|
--source include/wait_condition.inc
|
|
|
|
--echo
|
|
|
|
|
|
|
|
--echo # -- Disconnecting default connection...
|
|
|
|
--disconnect default
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Check that we allow exactly three user connections, no matter how
|
|
|
|
--echo # -- many threads are running.
|
|
|
|
--echo
|
|
|
|
|
|
|
|
--echo # -- Connecting (1)...
|
|
|
|
--connect (con_1,localhost,mysqltest_u1)
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Waiting for root connection to close...
|
|
|
|
let $wait_condition =
|
|
|
|
SELECT COUNT(*) = 1
|
|
|
|
FROM information_schema.processlist
|
|
|
|
WHERE db = 'test';
|
|
|
|
--source include/wait_condition.inc
|
|
|
|
--echo
|
|
|
|
|
|
|
|
--echo # -- Connecting (2)...
|
|
|
|
--connect (con_2,localhost,mysqltest_u1)
|
|
|
|
|
|
|
|
--echo # -- Connecting (3)...
|
|
|
|
--connect (con_3,localhost,mysqltest_u1)
|
|
|
|
|
|
|
|
--echo # -- Connecting (4)...
|
|
|
|
--disable_query_log
|
|
|
|
--error ER_CON_COUNT_ERROR
|
|
|
|
--connect (con_4,localhost,mysqltest_u1)
|
|
|
|
--enable_query_log
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Waiting for the last connection to close...
|
|
|
|
let $wait_condition =
|
|
|
|
SELECT COUNT(*) = 3
|
|
|
|
FROM information_schema.processlist
|
|
|
|
WHERE db = 'test';
|
|
|
|
--source include/wait_condition.inc
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Check that we allow one extra SUPER-user connection.
|
|
|
|
--echo
|
|
|
|
|
|
|
|
--echo # -- Connecting super (1)...
|
|
|
|
--connect (con_super_1,localhost,root)
|
|
|
|
|
|
|
|
--echo # -- Connecting super (2)...
|
|
|
|
--disable_query_log
|
|
|
|
--error ER_CON_COUNT_ERROR
|
|
|
|
--connect (con_super_2,localhost,root)
|
|
|
|
--enable_query_log
|
|
|
|
|
|
|
|
--echo
|
|
|
|
# Ensure that we have Event Scheduler thread, 3 ordinary user connections and
|
|
|
|
# one extra super-user connection.
|
|
|
|
SELECT user FROM information_schema.processlist ORDER BY id;
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Resetting variables...
|
|
|
|
|
|
|
|
--eval SET GLOBAL max_connections = $saved_max_connections
|
|
|
|
SET GLOBAL event_scheduler = OFF;
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- That's it. Closing connections...
|
|
|
|
--disconnect con_1
|
|
|
|
--disconnect con_2
|
|
|
|
--disconnect con_super_1
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- Restoring default connection...
|
|
|
|
--connect (default,localhost,root,,test)
|
|
|
|
|
|
|
|
--echo
|
|
|
|
--echo # -- End of Bug#33507.
|
|
|
|
--echo
|
|
|
|
|
|
|
|
--echo # ------------------------------------------------------------------
|
|
|
|
--echo # -- End of 5.1 tests
|
|
|
|
--echo # ------------------------------------------------------------------
|