Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
560f2bd4
Commit
560f2bd4
authored
Jan 26, 2005
by
dlenev@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/dlenev/src/mysql-5.0-bg7637
parents
7db99fa5
348218d2
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
29 additions
and
5 deletions
+29
-5
mysql-test/r/user_limits.result
mysql-test/r/user_limits.result
+7
-0
mysql-test/t/user_limits.test
mysql-test/t/user_limits.test
+8
-0
sql/mysql_priv.h
sql/mysql_priv.h
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+4
-3
sql/set_var.cc
sql/set_var.cc
+8
-0
sql/set_var.h
sql/set_var.h
+1
-1
No files found.
mysql-test/r/user_limits.result
View file @
560f2bd4
...
...
@@ -6,6 +6,7 @@ delete from mysql.tables_priv where user like 'mysqltest\_%';
delete from mysql.columns_priv where user like 'mysqltest\_%';
flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2;
flush user_resources;
select * from t1;
i
select * from t1;
...
...
@@ -16,6 +17,7 @@ select * from t1;
ERROR 42000: User 'mysqltest_1' has exceeded the 'max_questions' resource (current value: 2)
drop user mysqltest_1@localhost;
grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2;
flush user_resources;
select * from t1;
i
select * from t1;
...
...
@@ -34,6 +36,7 @@ select * from t1;
i
drop user mysqltest_1@localhost;
grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2;
flush user_resources;
select * from t1;
i
select * from t1;
...
...
@@ -47,6 +50,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_connections' resource (cur
drop user mysqltest_1@localhost;
flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_user_connections 2;
flush user_resources;
select * from t1;
i
select * from t1;
...
...
@@ -56,6 +60,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource
select * from t1;
i
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
select * from t1;
i
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
...
...
@@ -71,6 +76,7 @@ select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections
2 2
grant usage on *.* to mysqltest_1@localhost;
flush user_resources;
select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections
2 2
...
...
@@ -79,6 +85,7 @@ i
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
ERROR 42000: User mysqltest_1 already has more than 'max_user_connections' active connections
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections
3 2
...
...
mysql-test/t/user_limits.test
View file @
560f2bd4
...
...
@@ -19,6 +19,8 @@ flush privileges;
# Test of MAX_QUERIES_PER_HOUR limit
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_queries_per_hour
2
;
# This ensures that counters are reset and makes test scheduling independent
flush
user_resources
;
connect
(
mqph
,
localhost
,
mysqltest_1
,,);
connection
mqph
;
select
*
from
t1
;
...
...
@@ -37,6 +39,7 @@ disconnect mqph2;
# Test of MAX_UPDATES_PER_HOUR limit
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_updates_per_hour
2
;
flush
user_resources
;
connect
(
muph
,
localhost
,
mysqltest_1
,,);
connection
muph
;
select
*
from
t1
;
...
...
@@ -60,6 +63,7 @@ disconnect muph2;
# Test of MAX_CONNECTIONS_PER_HOUR limit
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_connections_per_hour
2
;
flush
user_resources
;
connect
(
mcph1
,
localhost
,
mysqltest_1
,,);
connection
mcph1
;
select
*
from
t1
;
...
...
@@ -86,6 +90,7 @@ drop user mysqltest_1@localhost;
# We need this to reset internal mqh_used variable
flush
privileges
;
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_user_connections
2
;
flush
user_resources
;
connect
(
muc1
,
localhost
,
mysqltest_1
,,);
connection
muc1
;
select
*
from
t1
;
...
...
@@ -102,6 +107,7 @@ select * from t1;
# Changing of limit should also help (and immediately)
connection
default
;
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_user_connections
3
;
flush
user_resources
;
connect
(
muc4
,
localhost
,
mysqltest_1
,,);
connection
muc4
;
select
*
from
t1
;
...
...
@@ -127,6 +133,7 @@ set global max_user_connections= 2;
select
@@
session
.
max_user_connections
,
@@
global
.
max_user_connections
;
# Let us check that global limit works
grant
usage
on
*.*
to
mysqltest_1
@
localhost
;
flush
user_resources
;
connect
(
muca1
,
localhost
,
mysqltest_1
,,);
connection
muca1
;
select
@@
session
.
max_user_connections
,
@@
global
.
max_user_connections
;
...
...
@@ -139,6 +146,7 @@ connect (muca3, localhost, mysqltest_1,,);
# Now we are testing that per-account limit prevails over gloabl limit
connection
default
;
grant
usage
on
*.*
to
mysqltest_1
@
localhost
with
max_user_connections
3
;
flush
user_resources
;
connect
(
muca3
,
localhost
,
mysqltest_1
,,);
connection
muca3
;
select
@@
session
.
max_user_connections
,
@@
global
.
max_user_connections
;
...
...
sql/mysql_priv.h
View file @
560f2bd4
...
...
@@ -1001,7 +1001,7 @@ extern ulong ha_read_count, ha_discover_count;
extern
ulong
table_cache_size
;
extern
ulong
max_connections
,
max_connect_errors
,
connect_timeout
;
extern
ulong
slave_net_timeout
;
extern
u
long
max_user_connections
;
extern
u
int
max_user_connections
;
extern
my_bool
timed_mutexes
;
extern
ulong
what_to_log
,
flush_time
;
extern
ulong
query_buff_size
,
thread_stack
,
thread_stack_min
;
...
...
sql/mysqld.cc
View file @
560f2bd4
...
...
@@ -333,7 +333,8 @@ ulong delayed_insert_errors,flush_time, thread_created;
ulong
specialflag
=
0
;
ulong
binlog_cache_use
=
0
,
binlog_cache_disk_use
=
0
;
ulong
max_connections
,
max_used_connections
,
max_connect_errors
,
max_user_connections
=
0
;
max_connect_errors
;
uint
max_user_connections
=
0
;
ulong
thread_id
=
1L
,
current_pid
;
my_bool
timed_mutexes
=
0
;
ulong
slow_launch_threads
=
0
,
sync_binlog_period
;
...
...
@@ -5255,8 +5256,8 @@ The minimum value for this variable is 4096.",
REQUIRED_ARG
,
32
,
1
,
~
0L
,
0
,
1
,
0
},
{
"max_user_connections"
,
OPT_MAX_USER_CONNECTIONS
,
"The maximum number of active connections for a single user (0 = no limit)."
,
(
gptr
*
)
&
max_user_connections
,
(
gptr
*
)
&
max_user_connections
,
0
,
GET_U
LONG
,
REQUIRED_ARG
,
0
,
1
,
~
0
L
,
0
,
1
,
0
},
(
gptr
*
)
&
max_user_connections
,
(
gptr
*
)
&
max_user_connections
,
0
,
GET_U
INT
,
REQUIRED_ARG
,
0
,
1
,
~
0
,
0
,
1
,
0
},
{
"max_write_lock_count"
,
OPT_MAX_WRITE_LOCK_COUNT
,
"After this many write locks, allow some read locks to run in between."
,
(
gptr
*
)
&
max_write_lock_count
,
(
gptr
*
)
&
max_write_lock_count
,
0
,
GET_ULONG
,
...
...
sql/set_var.cc
View file @
560f2bd4
...
...
@@ -1599,6 +1599,14 @@ Item *sys_var::item(THD *thd, enum_var_type var_type, LEX_STRING *base)
var_type
=
OPT_GLOBAL
;
}
switch
(
type
())
{
case
SHOW_INT
:
{
uint
value
;
pthread_mutex_lock
(
&
LOCK_global_system_variables
);
value
=
*
(
uint
*
)
value_ptr
(
thd
,
var_type
,
base
);
pthread_mutex_unlock
(
&
LOCK_global_system_variables
);
return
new
Item_uint
((
int32
)
value
);
}
case
SHOW_LONG
:
{
ulong
value
;
...
...
sql/set_var.h
View file @
560f2bd4
...
...
@@ -740,7 +740,7 @@ class sys_var_max_user_conn : public sys_var_thd
return
type
!=
OPT_GLOBAL
||
!
option_limits
;
}
void
set_default
(
THD
*
thd
,
enum_var_type
type
);
SHOW_TYPE
type
()
{
return
SHOW_
LONG
;
}
SHOW_TYPE
type
()
{
return
SHOW_
INT
;
}
byte
*
value_ptr
(
THD
*
thd
,
enum_var_type
type
,
LEX_STRING
*
base
);
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment