mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
c167501bfb
The problem was that number of threads was used to calculate max_used_connections. The fix is to use number of active connections. mysql-test/r/connect.result: Update result file. mysql-test/t/connect.test: - Add a test case for Bug#35074: max_used_connections is not correct; - Make a test case for Bug#33507 more stable. sql/mysqld.cc: Use number of connections insetad of threads to calculate max_used_connections.
209 lines
5.1 KiB
Text
209 lines
5.1 KiB
Text
drop table if exists t1,t2;
|
|
show tables;
|
|
Tables_in_mysql
|
|
columns_priv
|
|
db
|
|
event
|
|
func
|
|
general_log
|
|
help_category
|
|
help_keyword
|
|
help_relation
|
|
help_topic
|
|
host
|
|
ndb_binlog_index
|
|
plugin
|
|
proc
|
|
procs_priv
|
|
servers
|
|
slow_log
|
|
tables_priv
|
|
time_zone
|
|
time_zone_leap_second
|
|
time_zone_name
|
|
time_zone_transition
|
|
time_zone_transition_type
|
|
user
|
|
show tables;
|
|
Tables_in_test
|
|
connect(localhost,root,z,test2,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
|
|
connect(localhost,root,z,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'root'@'localhost' (using password: YES)
|
|
grant ALL on *.* to test@localhost identified by "gambling";
|
|
grant ALL on *.* to test@127.0.0.1 identified by "gambling";
|
|
show tables;
|
|
Tables_in_mysql
|
|
columns_priv
|
|
db
|
|
event
|
|
func
|
|
general_log
|
|
help_category
|
|
help_keyword
|
|
help_relation
|
|
help_topic
|
|
host
|
|
ndb_binlog_index
|
|
plugin
|
|
proc
|
|
procs_priv
|
|
servers
|
|
slow_log
|
|
tables_priv
|
|
time_zone
|
|
time_zone_leap_second
|
|
time_zone_name
|
|
time_zone_transition
|
|
time_zone_transition_type
|
|
user
|
|
show tables;
|
|
Tables_in_test
|
|
connect(localhost,test,,test2,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
|
connect(localhost,test,,"",MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
|
connect(localhost,test,zorro,test2,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
|
connect(localhost,test,zorro,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
|
update mysql.user set password=old_password("gambling2") where user=_binary"test";
|
|
flush privileges;
|
|
set password="";
|
|
set password='gambling3';
|
|
ERROR HY000: Password hash should be a 41-digit hexadecimal number
|
|
set password=old_password('gambling3');
|
|
show tables;
|
|
Tables_in_mysql
|
|
columns_priv
|
|
db
|
|
event
|
|
func
|
|
general_log
|
|
help_category
|
|
help_keyword
|
|
help_relation
|
|
help_topic
|
|
host
|
|
ndb_binlog_index
|
|
plugin
|
|
proc
|
|
procs_priv
|
|
servers
|
|
slow_log
|
|
tables_priv
|
|
time_zone
|
|
time_zone_leap_second
|
|
time_zone_name
|
|
time_zone_transition
|
|
time_zone_transition_type
|
|
user
|
|
show tables;
|
|
Tables_in_test
|
|
connect(localhost,test,,test2,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
|
connect(localhost,test,,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: NO)
|
|
connect(localhost,test,zorro,test2,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
|
connect(localhost,test,zorro,test,MASTER_PORT,MASTER_SOCKET);
|
|
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
|
|
delete from mysql.user where user=_binary"test";
|
|
flush privileges;
|
|
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;
|
|
drop table t1;
|
|
# ------------------------------------------------------------------
|
|
# -- End of 4.1 tests
|
|
# ------------------------------------------------------------------
|
|
|
|
# -- Bug#33507: Event scheduler creates more threads than max_connections
|
|
# -- which results in user lockout.
|
|
|
|
GRANT USAGE ON *.* TO mysqltest_u1@localhost;
|
|
|
|
SET GLOBAL max_connections = 3;
|
|
SET GLOBAL event_scheduler = ON;
|
|
|
|
# -- Waiting for old connections to close...
|
|
|
|
|
|
# -- Disconnecting default connection...
|
|
|
|
# -- Check that we allow exactly three user connections, no matter how
|
|
# -- many threads are running.
|
|
|
|
# -- Connecting (1)...
|
|
|
|
# -- Waiting for root connection to close...
|
|
|
|
# -- Connecting (2)...
|
|
# -- Connecting (3)...
|
|
# -- Connecting (4)...
|
|
ERROR 08004: Too many connections
|
|
|
|
# -- Waiting for the last connection to close...
|
|
|
|
# -- Check that we allow one extra SUPER-user connection.
|
|
|
|
# -- Connecting super (1)...
|
|
# -- Connecting super (2)...
|
|
ERROR 00000: Too many connections
|
|
|
|
SELECT user FROM information_schema.processlist ORDER BY id;
|
|
user
|
|
event_scheduler
|
|
mysqltest_u1
|
|
mysqltest_u1
|
|
mysqltest_u1
|
|
root
|
|
|
|
# -- Resetting variables...
|
|
SET GLOBAL max_connections = 151;
|
|
|
|
# -- Stopping Event Scheduler...
|
|
SET GLOBAL event_scheduler = OFF;
|
|
# -- Waiting for Event Scheduler to stop...
|
|
|
|
# -- That's it. Closing connections...
|
|
|
|
# -- Restoring default connection...
|
|
|
|
# -- Waiting for connections to close...
|
|
|
|
DROP USER mysqltest_u1@localhost;
|
|
|
|
# -- End of Bug#33507.
|
|
|
|
# -- Bug#35074: max_used_connections is not correct.
|
|
|
|
FLUSH STATUS;
|
|
|
|
SHOW STATUS LIKE 'max_used_connections';
|
|
Variable_name Value
|
|
Max_used_connections 1
|
|
|
|
# -- Starting Event Scheduler...
|
|
SET GLOBAL event_scheduler = ON;
|
|
# -- Waiting for Event Scheduler to start...
|
|
|
|
# -- Opening a new connection to check max_used_connections...
|
|
|
|
# -- Check that max_used_connections hasn't changed.
|
|
SHOW STATUS LIKE 'max_used_connections';
|
|
Variable_name Value
|
|
Max_used_connections 2
|
|
|
|
# -- Closing new connection...
|
|
|
|
# -- Stopping Event Scheduler...
|
|
SET GLOBAL event_scheduler = OFF;
|
|
# -- Waiting for Event Scheduler to stop...
|
|
|
|
# -- End of Bug#35074.
|
|
|
|
# ------------------------------------------------------------------
|
|
# -- End of 5.1 tests
|
|
# ------------------------------------------------------------------
|