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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
409fba38
Commit
409fba38
authored
Jun 13, 2002
by
arjen@fred.bitbike.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Style/spelling fixups, mainly of new privileges.
parent
72032a19
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
134 additions
and
118 deletions
+134
-118
Docs/manual.texi
Docs/manual.texi
+134
-118
No files found.
Docs/manual.texi
View file @
409fba38
...
@@ -3671,7 +3671,7 @@ For platform-specific bugs, see the sections about compiling and porting.
...
@@ -3671,7 +3671,7 @@ For platform-specific bugs, see the sections about compiling and porting.
* TODO MySQL 4.1:: Things That Should be in 4.1
* TODO MySQL 4.1:: Things That Should be in 4.1
* TODO future:: Things That Must be Done in the Near Future
* TODO future:: Things That Must be Done in the Near Future
* TODO sometime:: Things That Have to be Done Sometime
* TODO sometime:: Things That Have to be Done Sometime
* TODO unplanned:: Things We
Have No Plans to d
o
* TODO unplanned:: Things We
Don't Plan To D
o
@end menu
@end menu
This appendix lists the features that we plan to implement in MySQL Server.
This appendix lists the features that we plan to implement in MySQL Server.
...
@@ -3832,7 +3832,7 @@ Faster row handling (less copying)
...
@@ -3832,7 +3832,7 @@ Faster row handling (less copying)
@node TODO future, TODO sometime, TODO MySQL 4.1, TODO
@node TODO future, TODO sometime, TODO MySQL 4.1, TODO
@subsection Things That Must be Done in the
Real
Near Future
@subsection Things That Must be Done in the Near Future
@itemize @bullet
@itemize @bullet
@item
@item
...
@@ -4135,7 +4135,7 @@ Time is given according to amount of work, not real time.
...
@@ -4135,7 +4135,7 @@ Time is given according to amount of work, not real time.
@node TODO unplanned, , TODO sometime, TODO
@node TODO unplanned, , TODO sometime, TODO
@subsection Things We
Have No Plans to d
o
@subsection Things We
Don't Plan To D
o
@itemize @bullet
@itemize @bullet
@item
@item
...
@@ -8153,24 +8153,24 @@ MySQL 4.0 has a lot of new privileges in the @code{mysql.user} table.
...
@@ -8153,24 +8153,24 @@ MySQL 4.0 has a lot of new privileges in the @code{mysql.user} table.
@xref{GRANT}.
@xref{GRANT}.
To get these new privileges to work, one must run the
To get these new privileges to work, one must run the
@code{mysql_fix_privilege_tables} script
s
. Until this script is run all
@code{mysql_fix_privilege_tables} script. Until this script is run all
users have the @
code{SHOW DATABASES}, @code{CREATE TEMPORARY TABLES
},
users have the @
strong{show databases}, @strong{create temporary tables
},
and @
code{LOCK TABLES} privileges. @code{SUPER} and @code{EXECUTE
}
and @
strong{lock tables} privileges. @strong{super} and @strong{execute
}
privileges take
s their value from @code{PROCESS}. @code{REPLICATION
privileges take
their value from @strong{process}.
SLAVE} and @code{REPLICATION CLIENT} takes their values from
@strong{replication slave} and @code{replication client} take their
@code{FILE
}.
values from @strong{file
}.
If you have any scripts that creates new users, you may want to change
If you have any scripts that creates new users, you may want to change
them to use the new privileges. If you are not using @code{GRANT}
them to use the new privileges. If you are not using @code{GRANT}
commands in the scrip
its, this is a good time to change the scripts..
.
commands in the scrip
ts, this is a good time to change your scripts
.
In
4.0.2 the option @code{--safe-show-database} doesn't do anything an
d
In
version 4.0.2 the option @code{--safe-show-database} is deprecate
d
should not be used
. @xref{Privileges options}.
(and no longer does anything)
. @xref{Privileges options}.
If you get access denied errors for new users
with MySQL
4.0.2, you
If you get access denied errors for new users
in version
4.0.2, you
should check if you need some of the new grants that you didn't need
should check if you need some of the new grants that you didn't need
before. In particular, you will need @
code{REPLICATION SLAVE} (instead
before. In particular, you will need @
strong{replication slave}
of @code{FILE
}) for new slaves.
(instead of @strong{file
}) for new slaves.
@item
@item
@code{DOUBLE} and @code{FLOAT} columns are now honoring the
@code{DOUBLE} and @code{FLOAT} columns are now honoring the
@code{UNSIGNED} flag on storage (before, @code{UNSIGNED} was ignored for
@code{UNSIGNED} flag on storage (before, @code{UNSIGNED} was ignored for
...
@@ -8622,7 +8622,7 @@ what you should do, try our binary first to see if it meets your needs, and
...
@@ -8622,7 +8622,7 @@ what you should do, try our binary first to see if it meets your needs, and
worry about your own build only after you have discovered that our binary is
worry about your own build only after you have discovered that our binary is
not good enough. In that case, we would appreciate a note about it, so we
not good enough. In that case, we would appreciate a note about it, so we
can build a better binary next time. For a typical user, even for setups with
can build a better binary next time. For a typical user, even for setups with
a lot of concurrent connections and/or tables exceeding
2GB
limit, our
a lot of concurrent connections and/or tables exceeding
the 2G
limit, our
binary in most cases is the best choice.
binary in most cases is the best choice.
MySQL uses LinuxThreads on Linux. If you are using an old
MySQL uses LinuxThreads on Linux. If you are using an old
...
@@ -8702,7 +8702,7 @@ If you build MySQL yourself and do not want to mess with patching
...
@@ -8702,7 +8702,7 @@ If you build MySQL yourself and do not want to mess with patching
LinuxThreads, you should set @code{max_connections} to a value no higher
LinuxThreads, you should set @code{max_connections} to a value no higher
than 500. It should be even less if you have a large key buffer, large
than 500. It should be even less if you have a large key buffer, large
heap tables, or some other things that make @code{mysqld} allocate a lot
heap tables, or some other things that make @code{mysqld} allocate a lot
of memory, or if you are running a 2.2 kernel with a 2G
B
patch. If you are
of memory, or if you are running a 2.2 kernel with a 2G patch. If you are
using our binary or RPM version 3.23.25 or later, you can safely set
using our binary or RPM version 3.23.25 or later, you can safely set
@code{max_connections} at 1500, assuming no large key buffer or heap tables
@code{max_connections} at 1500, assuming no large key buffer or heap tables
with lots of data. The more you reduce @code{STACK_SIZE} in LinuxThreads
with lots of data. The more you reduce @code{STACK_SIZE} in LinuxThreads
...
@@ -9682,7 +9682,7 @@ For the moment, the workaround is to list the parameters in the
...
@@ -9682,7 +9682,7 @@ For the moment, the workaround is to list the parameters in the
@file{C:\my.cnf} file instead.
@file{C:\my.cnf} file instead.
@item
@item
It would be real nice to be able to kill @code{mysqld} from the task manager.
It would be real
ly
nice to be able to kill @code{mysqld} from the task manager.
For the moment, you must use @code{mysqladmin shutdown}.
For the moment, you must use @code{mysqladmin shutdown}.
@item
@item
...
@@ -10045,7 +10045,7 @@ as well as specific versions within those.
...
@@ -10045,7 +10045,7 @@ as well as specific versions within those.
FreeBSD 3.x is recommended for running MySQL since the thread package
FreeBSD 3.x is recommended for running MySQL since the thread package
is much more integrated.
is much more integrated.
The easiest and therefor the preferred way to install is to use the
The easiest and therefor
e
the preferred way to install is to use the
mysql-server and mysql-client ports available on
mysql-server and mysql-client ports available on
@uref{http://www.freebsd.org/}.
@uref{http://www.freebsd.org/}.
...
@@ -11909,8 +11909,8 @@ The list of databases is probably different on your machine, but the
...
@@ -11909,8 +11909,8 @@ The list of databases is probably different on your machine, but the
privileges. The @code{test} database is often provided as a workspace for
privileges. The @code{test} database is often provided as a workspace for
users to try things out.
users to try things out.
Note that you may not see all databases if you don't have the
@code{SHOW
Note that you may not see all databases if you don't have the
DATABASES
} privilege. @xref{GRANT}.
@strong{show databases
} privilege. @xref{GRANT}.
If the @code{test} database exists, try to access it:
If the @code{test} database exists, try to access it:
...
@@ -14306,7 +14306,11 @@ information of how to optimise these. @xref{Server parameters}.
...
@@ -14306,7 +14306,11 @@ information of how to optimise these. @xref{Server parameters}.
Skip some optimise stages. Implies @code{--skip-delay-key-write}.
Skip some optimise stages. Implies @code{--skip-delay-key-write}.
@item --safe-show-database
@item --safe-show-database
Don't show databases for which the user doesn't have any privileges.
With this option, the @code{SHOW DATABASES} command returns only those
databases for which the user has some kind of privilege.
From version 4.0.2 this option is deprecated and doesn't do anything
(the option is enabled by default) as we now have the
@strong{show databases} privilege. @xref{GRANT}.
@item --safe-user-create
@item --safe-user-create
If this is enabled, a user can't create new users with the GRANT
If this is enabled, a user can't create new users with the GRANT
...
@@ -14362,9 +14366,10 @@ freeing. As this checking is very slow, you can avoid this, when you don't
...
@@ -14362,9 +14366,10 @@ freeing. As this checking is very slow, you can avoid this, when you don't
need memory checking, by using this option.
need memory checking, by using this option.
@item --skip-show-database
@item --skip-show-database
Don't allow 'SHOW DATABASE' commands, unless the user has the
Don't allow @code{SHOW DATABASES} command, unless the user has the
@strong{SHOW DATABASE} privilege. In 4.0.2 this command should not be
@strong{show databases} privilege. From version 4.0.2 you should no longer
need anymore.
need this option, since access can now be granted specifically with the
@strong{show databases} privilege.
@item --skip-stack-trace
@item --skip-stack-trace
Don't write stack traces. This option is useful when you are running
Don't write stack traces. This option is useful when you are running
...
@@ -15139,10 +15144,11 @@ If one uses @code{--local-infile=0} then one can't use @code{LOAD DATA LOCAL
...
@@ -15139,10 +15144,11 @@ If one uses @code{--local-infile=0} then one can't use @code{LOAD DATA LOCAL
INFILE}.
INFILE}.
@item --safe-show-database
@item --safe-show-database
With this option, @code{SHOW DATABASES} returns only those databases for
With this option, the @code{SHOW DATABASES} command returns only those
which the user has some kind of privilege. In 4.0.2 this command doesn't
databases for which the user has some kind of privilege.
do anything (the option is enabled by default) as we now have the
From version 4.0.2 this option is deprecated and doesn't do anything
@code{SHOWS DATABASES} privilege. @xref{GRANT}.
(the option is enabled by default) as we now have the
@strong{show databases} privilege. @xref{GRANT}.
@item --safe-user-create
@item --safe-user-create
If this is enabled, an user can't create new users with the @code{GRANT}
If this is enabled, an user can't create new users with the @code{GRANT}
...
@@ -15175,8 +15181,10 @@ systems that use MIT-pthreads, because the MIT-pthreads package doesn't
...
@@ -15175,8 +15181,10 @@ systems that use MIT-pthreads, because the MIT-pthreads package doesn't
support Unix sockets.
support Unix sockets.
@item --skip-show-database
@item --skip-show-database
With this option, the
Don't allow @code{SHOW DATABASES} command, unless the user has the
@code{SHOW DATABASES} statement doesn't return anything.
@strong{show databases} privilege. From version 4.0.2 you should no longer
need this option, since access can now be granted specifically with the
@strong{show databases} privilege.
@end table
@end table
...
@@ -15461,10 +15469,11 @@ MySQL server reads the contents of these tables when it starts up
...
@@ -15461,10 +15469,11 @@ MySQL server reads the contents of these tables when it starts up
and under the circumstances indicated in @ref{Privilege changes}.
and under the circumstances indicated in @ref{Privilege changes}.
The names used in this manual to refer to the privileges provided by
The names used in this manual to refer to the privileges provided by
MySQL
4.0.2 are shown here, along with the table column name associated
MySQL
version 4.0.2 are shown here, along with the table column name
with each privilege in the grant tables and the context in which the
associated with each privilege in the grant tables and the context in
privilege applies:
which the
privilege applies:
@c FIX agl 2002-06-13 Long items added, will need to re-measure colwidths!
@multitable @columnfractions .15 .20 .35
@multitable @columnfractions .15 .20 .35
@item @strong{Privilege} @tab @strong{Column} @tab @strong{Context}
@item @strong{Privilege} @tab @strong{Column} @tab @strong{Context}
@item @strong{alter} @tab @code{Alter_priv} @tab tables
@item @strong{alter} @tab @code{Alter_priv} @tab tables
...
@@ -15552,7 +15561,7 @@ The @code{shutdown} command shuts down the server.
...
@@ -15552,7 +15561,7 @@ The @code{shutdown} command shuts down the server.
The @code{processlist} command displays information about the threads
The @code{processlist} command displays information about the threads
executing within the server. The @code{kill} command kills server
executing within the server. The @code{kill} command kills server
threads. You can always display or kill your own threads, but you need
threads. You can always display or kill your own threads, but you need
the @strong{
PROCESS} privilege to display and @code{SUPER
} privilege to
the @strong{
process} privilege to display and @strong{super
} privilege to
kill threads initiated by other users. @xref{KILL}.
kill threads initiated by other users. @xref{KILL}.
It is a good idea in general to grant privileges only to those users who need
It is a good idea in general to grant privileges only to those users who need
...
@@ -16501,6 +16510,7 @@ For examples of how @code{GRANT} works, see @ref{Adding users}.
...
@@ -16501,6 +16510,7 @@ For examples of how @code{GRANT} works, see @ref{Adding users}.
For the @code{GRANT} and @code{REVOKE} statements, @code{priv_type} may be
For the @code{GRANT} and @code{REVOKE} statements, @code{priv_type} may be
specified as any of the following:
specified as any of the following:
@c FIX agl 2002-06-13 New table, need to measure colwidths!
@multitable @columnfractions .30 .70
@multitable @columnfractions .30 .70
@item @code{ALL [PRIVILEGES]} @tab Sets all simple privileges except @code{WITH GRANT OPTION}
@item @code{ALL [PRIVILEGES]} @tab Sets all simple privileges except @code{WITH GRANT OPTION}
@item @code{ALTER} @tab Allows usage of @code{ALTER TABLE}
@item @code{ALTER} @tab Allows usage of @code{ALTER TABLE}
...
@@ -16526,15 +16536,16 @@ specified as any of the following:
...
@@ -16526,15 +16536,16 @@ specified as any of the following:
@item @code{USAGE} @tab Synonym for ``no privileges.''
@item @code{USAGE} @tab Synonym for ``no privileges.''
@end multitable
@end multitable
@
code{USAGE
} can be used when you want to create a user that has no privileges.
@
strong{usage
} can be used when you want to create a user that has no privileges.
The privileges @code{CREATE TEMPORARY TABLE}, @code{EXECUTE},
The privileges @strong{create temporary table}, @strong{execute},
@code{LOCK TABLES}, @code{REPLICATION ...}, @code{SHOW DATABASES} and
@strong{lock tables}, @strong{replication ...}, @strong{show databases} and
@code{SUPER} are new for MySQL 4.0.2. To use these, after upgrading to
@strong{super} are new for in version 4.0.2. To use these new privileges
4.0.2, one has to run the @code{mysql_fix_privilege_tables} script.
after upgrading to 4.0.2, you have to run the
@code{mysql_fix_privilege_tables} script.
In older MySQL versions, the @
code{PROCESS} privilege gave the same rights
In older MySQL versions, the @
strong{process} privilege gives the same
as the new @code{SUPER
} privilege.
rights as the new @strong{super
} privilege.
To revoke the @strong{grant} privilege from a user, use a @code{priv_type}
To revoke the @strong{grant} privilege from a user, use a @code{priv_type}
value of @code{GRANT OPTION}:
value of @code{GRANT OPTION}:
...
@@ -16650,10 +16661,10 @@ You should be careful to whom you give the @strong{grant} privilege, as two
...
@@ -16650,10 +16661,10 @@ You should be careful to whom you give the @strong{grant} privilege, as two
users with different privileges may be able to join privileges!
users with different privileges may be able to join privileges!
@code{MAX_QUERIES_PER_HOUR #}, @code{MAX_UPDATES_PER_HOUR #} and
@code{MAX_QUERIES_PER_HOUR #}, @code{MAX_UPDATES_PER_HOUR #} and
@code{MAX_CONNECTIONS_PER_HOUR #} are new in MySQL
4.0.2. They limit
@code{MAX_CONNECTIONS_PER_HOUR #} are new in MySQL
version 4.0.2.
the number of queries/updates and logins the user can do during one
These options limit the number of queries/updates and logins the user can
hour. If @code{#} is 0 (default), then this means that there is no
do during one hour. If @code{#} is 0 (default), then this means that there
limitations for the
user. @xref{User resources}.
are no limitations for that
user. @xref{User resources}.
You cannot grant another user a privilege you don't have yourself;
You cannot grant another user a privilege you don't have yourself;
the @strong{grant} privilege allows you to give away only those privileges
the @strong{grant} privilege allows you to give away only those privileges
...
@@ -16998,7 +17009,7 @@ earlier in the @code{user} table sort order.
...
@@ -16998,7 +17009,7 @@ earlier in the @code{user} table sort order.
@item admin
@item admin
A user who can connect from @code{localhost} without a password and who is
A user who can connect from @code{localhost} without a password and who is
granted the @strong{reload} and @strong{
PROCESS
} administrative privileges.
granted the @strong{reload} and @strong{
process
} administrative privileges.
This allows the user to execute the @code{mysqladmin reload},
This allows the user to execute the @code{mysqladmin reload},
@code{mysqladmin refresh}, and @code{mysqladmin flush-*} commands, as well as
@code{mysqladmin refresh}, and @code{mysqladmin flush-*} commands, as well as
@code{mysqladmin processlist} . No database-related privileges are granted.
@code{mysqladmin processlist} . No database-related privileges are granted.
...
@@ -19211,9 +19222,9 @@ Each connection to @code{mysqld} runs in a separate thread. You can see
...
@@ -19211,9 +19222,9 @@ Each connection to @code{mysqld} runs in a separate thread. You can see
which threads are running with the @code{SHOW PROCESSLIST} command and kill
which threads are running with the @code{SHOW PROCESSLIST} command and kill
a thread with the @code{KILL thread_id} command.
a thread with the @code{KILL thread_id} command.
If you have the @strong{
PROCESS
} privilege, you can see all threads.
If you have the @strong{
process
} privilege, you can see all threads.
If you have the @
code{SUPER} privilege
you can kill all threads.
If you have the @
strong{super} privilege,
you can kill all threads.
Otherwise, you can
see and kill only
your own threads.
Otherwise, you can
only see and kill
your own threads.
You can also use the @code{mysqladmin processlist} and @code{mysqladmin kill}
You can also use the @code{mysqladmin processlist} and @code{mysqladmin kill}
commands to examine and kill threads.
commands to examine and kill threads.
...
@@ -19320,10 +19331,11 @@ mysql> SHOW INDEX FROM mytable FROM mydb;
...
@@ -19320,10 +19331,11 @@ mysql> SHOW INDEX FROM mytable FROM mydb;
mysql> SHOW INDEX FROM mydb.mytable;
mysql> SHOW INDEX FROM mydb.mytable;
@end example
@end example
@code{SHOW DATABASES} lists the databases on the MySQL server host. You
@code{SHOW DATABASES} lists the databases on the MySQL server host.
can also get this list using the @code{mysqlshow} command. In MySQL
You can also get this list using the @code{mysqlshow} command line tool.
4.0.2 you will only see those databases for which you have some kind of
In version 4.0.2 you will only see those databases for which you have some
privilege, if you don't have the global @code{SHOW DATABASES} privilege.
kind of privilege, if you don't have the global @strong{show databases}
privilege.
@code{SHOW TABLES} lists the tables in a given database. You can also
@code{SHOW TABLES} lists the tables in a given database. You can also
get this list using the @code{mysqlshow db_name} command.
get this list using the @code{mysqlshow db_name} command.
...
@@ -20120,7 +20132,7 @@ Is ON if we only allow local (socket) connections.
...
@@ -20120,7 +20132,7 @@ Is ON if we only allow local (socket) connections.
@item @code{skip_show_database}
@item @code{skip_show_database}
This prevents people from doing @code{SHOW DATABASES} if they don't have
This prevents people from doing @code{SHOW DATABASES} if they don't have
the @strong{
PROCESS
} privilege. This can improve security if you're
the @strong{
process
} privilege. This can improve security if you're
concerned about people being able to see what databases other users
concerned about people being able to see what databases other users
have. See also @code{safe_show_database}.
have. See also @code{safe_show_database}.
...
@@ -20228,16 +20240,17 @@ subsystem)
...
@@ -20228,16 +20240,17 @@ subsystem)
@cindex threads, display
@cindex threads, display
@cindex processes, display
@cindex processes, display
@code{SHOW [FULL] PROCESSLIST} shows you which threads are running. You can
@code{SHOW [FULL] PROCESSLIST} shows you which threads are running.
also get this information using the @code{mysqladmin processlist}
You can also get this information using the @code{mysqladmin processlist}
command. If you have the @strong{SUPER} privilege, you can see all
command. If you have the @strong{super} privilege, you can see all
threads. Otherwise, you can see only your own threads. @xref{KILL, ,
threads. Otherwise, you can see only your own threads.
@code{KILL}}. If you don't use the @code{FULL} option, then only
@xref{KILL, ,@code{KILL}}.
the first 100 characters of each query will be shown.
If you don't use the @code{FULL} option, then only the first 100
characters of each query will be shown.
This command is very useful if you get the 'too many connections' error
This command is very useful if you get the 'too many connections' error
message and want to find out what's going on. MySQL reserves
message and want to find out what's going on. MySQL reserves
one extra connection for a client with the @strong{
SUPER
} privilege
one extra connection for a client with the @strong{
super
} privilege
to ensure that you should always be able to login and check the system
to ensure that you should always be able to login and check the system
(assuming you are not giving this privilege to all your users).
(assuming you are not giving this privilege to all your users).
...
@@ -23593,11 +23606,11 @@ do not report bugs until you have verified that the problem is present
...
@@ -23593,11 +23606,11 @@ do not report bugs until you have verified that the problem is present
in the latest release.
in the latest release.
@item
@item
Set up special a replication user on the master with the @
code{FILE} (in
Set up special a replication user on the master with the @
strong{file}
MySQL versions older than 4.0.2) or @code{REPLICATION SLAVE} privilege
(in MySQL versions older than 4.0.2) or @strong{replication slave}
in newer MySQL versions. You must also gived permission to connect from
privilege in newer MySQL versions. You must also have given permission
all the slaves. If the user is only doing replication (which is
to connect from all the slaves. If the user is only doing replication
recommended), you don't need to grant any additional privileges.
(which is
recommended), you don't need to grant any additional privileges.
For example, to create a user named @code{repl} which can access your
For example, to create a user named @code{repl} which can access your
master from any host, you might use this command:
master from any host, you might use this command:
...
@@ -23812,8 +23825,8 @@ a database that was excluded from replication.
...
@@ -23812,8 +23825,8 @@ a database that was excluded from replication.
@item
@item
Starting in Version 3.23.16, @code{SET SQL_LOG_BIN = 0} will turn off
Starting in Version 3.23.16, @code{SET SQL_LOG_BIN = 0} will turn off
replication (binary) logging on the master, and @code{SET SQL_LOG_BIN =
replication (binary) logging on the master, and @code{SET SQL_LOG_BIN =
1} will turn it back on -- you must have the @strong{
SUPER
} (in MySQL
1} will turn it back on -- you must have the @strong{
super
} (in MySQL
4.0.2 and above) or @strong{
PROCESS
} (in older MySQL versions) privilege
4.0.2 and above) or @strong{
process
} (in older MySQL versions) privilege
to do this.
to do this.
@item
@item
Starting in Version 3.23.19, you can clean up stale replication leftovers when
Starting in Version 3.23.19, you can clean up stale replication leftovers when
...
@@ -24152,11 +24165,11 @@ summary of commands:
...
@@ -24152,11 +24165,11 @@ summary of commands:
@tab Stops the slave thread. (Slave)
@tab Stops the slave thread. (Slave)
@item @code{SET SQL_LOG_BIN=0}
@item @code{SET SQL_LOG_BIN=0}
@tab Disables update logging if the user has the @strong{
SUPER
} privilege.
@tab Disables update logging if the user has the @strong{
super
} privilege.
Ignored otherwise. (Master)
Ignored otherwise. (Master)
@item @code{SET SQL_LOG_BIN=1}
@item @code{SET SQL_LOG_BIN=1}
@tab Re-enables update logging if the user has the @strong{
SUPER
} privilege.
@tab Re-enables update logging if the user has the @strong{
super
} privilege.
Ignored otherwise. (Master)
Ignored otherwise. (Master)
@item @code{SET SQL_SLAVE_SKIP_COUNTER=n}
@item @code{SET SQL_SLAVE_SKIP_COUNTER=n}
...
@@ -27663,12 +27676,12 @@ can be restored by using a @code{SQL_SELECT_LIMIT} value of @code{DEFAULT}.
...
@@ -27663,12 +27676,12 @@ can be restored by using a @code{SQL_SELECT_LIMIT} value of @code{DEFAULT}.
@item SQL_LOG_OFF = 0 | 1
@item SQL_LOG_OFF = 0 | 1
If set to @code{1}, no logging will be done to the standard log for this
If set to @code{1}, no logging will be done to the standard log for this
client, if the client has the @strong{
SUPER
} privilege. This does not
client, if the client has the @strong{
super
} privilege. This does not
affect the update log!
affect the update log!
@item SQL_LOG_UPDATE = 0 | 1
@item SQL_LOG_UPDATE = 0 | 1
If set to @code{0}, no logging will be done to the update log for the client,
If set to @code{0}, no logging will be done to the update log for the client,
if the client has the @strong{
SUPER
} privilege. This does not affect the
if the client has the @strong{
super
} privilege. This does not affect the
standard log!
standard log!
@item SQL_QUOTE_SHOW_CREATE = 0 | 1
@item SQL_QUOTE_SHOW_CREATE = 0 | 1
...
@@ -32999,7 +33012,7 @@ If no @code{key_string} argument is given, @code{DES_DECRYPT()} examines
...
@@ -32999,7 +33012,7 @@ If no @code{key_string} argument is given, @code{DES_DECRYPT()} examines
the first byte of the encrypted string to determine the DES key number
the first byte of the encrypted string to determine the DES key number
that was used to encrypt the original string, then reads the key
that was used to encrypt the original string, then reads the key
from the @code{des-key-file} to decrypt the message. For this to work
from the @code{des-key-file} to decrypt the message. For this to work
the user must have the @strong{
SUPER
} privilege.
the user must have the @strong{
super
} privilege.
If you pass this function a @code{key_string} argument, that string
If you pass this function a @code{key_string} argument, that string
is used as the key for decrypting the message.
is used as the key for decrypting the message.
...
@@ -35221,7 +35234,7 @@ connection dies and the name is per connection. This means that two different
...
@@ -35221,7 +35234,7 @@ connection dies and the name is per connection. This means that two different
connections can both use the same temporary table name without conflicting
connections can both use the same temporary table name without conflicting
with each other or with an existing table of the same name. (The existing table
with each other or with an existing table of the same name. (The existing table
is hidden until the temporary table is deleted.). In MySQL 4.0.2 one must
is hidden until the temporary table is deleted.). In MySQL 4.0.2 one must
have the @
code{CREATE TEMPORARY TABLE
} privilege to be able to create
have the @
strong{create temporary table
} privilege to be able to create
temporary tables.
temporary tables.
In MySQL Version 3.23 or later, you can use the keywords
In MySQL Version 3.23 or later, you can use the keywords
...
@@ -36245,10 +36258,11 @@ are locked by the current thread are automatically unlocked when the
...
@@ -36245,10 +36258,11 @@ are locked by the current thread are automatically unlocked when the
thread issues another @code{LOCK TABLES}, or when the connection to the
thread issues another @code{LOCK TABLES}, or when the connection to the
server is closed.
server is closed.
To use @code{LOCK TABLES} in MySQL 4.0.2 you need the global @code{LOCK
To use @code{LOCK TABLES} in MySQL 4.0.2 you need the global
TABLES} privilege and a @code{SELECT} privilege on the involved tables.
@strong{lock tables} privilege and a @strong{select} privilege on the
In MySQL 3.23 you need to have @code{SELECT}, @code{INSERT},
involved tables. In MySQL 3.23 you need to have @strong{select},
@code{DELETE} and @code{UPDATE} privileges for the tables.
@code{insert}, @strong{delete} and @strong{update} privileges for the
tables.
The main reasons to use @code{LOCK TABLES} are for emulating transactions
The main reasons to use @code{LOCK TABLES} are for emulating transactions
or getting more speed when updating tables. This is explained in more
or getting more speed when updating tables. This is explained in more
...
@@ -36386,7 +36400,7 @@ the next transaction.
...
@@ -36386,7 +36400,7 @@ the next transaction.
The default behavior is to set the isolation level for the next (not
The default behavior is to set the isolation level for the next (not
started) transaction. If you use the @code{GLOBAL} keyword, the statement
started) transaction. If you use the @code{GLOBAL} keyword, the statement
sets the default transaction level globally for all new connections
sets the default transaction level globally for all new connections
created from that point on. You will need the @strong{
SUPER
}
created from that point on. You will need the @strong{
super
}
privilege to do do this. Using the @code{SESSION} keyword sets the
privilege to do do this. Using the @code{SESSION} keyword sets the
default transaction level for all future transactions performed on the
default transaction level for all future transactions performed on the
current connection.
current connection.
...
@@ -37593,7 +37607,7 @@ and use @code{MERGE} table for others. You can even have many
...
@@ -37593,7 +37607,7 @@ and use @code{MERGE} table for others. You can even have many
different @code{MERGE} tables active, with possible overlapping files.
different @code{MERGE} tables active, with possible overlapping files.
@item
@item
More efficient repairs. It's easier to repair the individual files that
More efficient repairs. It's easier to repair the individual files that
are mapped to a @code{MERGE} file than trying to repair a real big file.
are mapped to a @code{MERGE} file than trying to repair a real
ly
big file.
@item
@item
Instant mapping of many files as one. A @code{MERGE} table uses the
Instant mapping of many files as one. A @code{MERGE} table uses the
index of the individual tables. It doesn't need to maintain an index of
index of the individual tables. It doesn't need to maintain an index of
...
@@ -38603,17 +38617,14 @@ SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'
...
@@ -38603,17 +38617,14 @@ SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'
The foreign key constraints are listed in the table comment of
The foreign key constraints are listed in the table comment of
the output.
the output.
InnoDB does not yet support @code{ON DELETE CASCADE}
or other special options on the constraints.
@node Adding and removing, Backing up, Using InnoDB tables, InnoDB
@node Adding and removing, Backing up, Using InnoDB tables, InnoDB
@subsection Adding and Removing InnoDB Data and Log Files
@subsection Adding and Removing InnoDB Data and Log Files
You cannot increase the size of an InnoDB datafile. To add more into
From version 3.23.50 and 4.0.2 you can specify the last InnoDB datafile
your tablespace you have to add a new datafile. To do this you have to
to @code{autoextend}. Alternatively, you can increase to your tablespace
shut down your MySQL database, edit the @file{my.cnf} file, adding a
by specifying an additional datafile. To do this you have to shut down
new file to @code{innodb_data_file_path}, and then start MySQL
the MySQL server, edit the @file{my.cnf} file adding a new datafile
again.
to @code{innodb_data_file_path}, and then start the MySQL server
again.
Currently you cannot remove a datafile from InnoDB. To decrease the
Currently you cannot remove a datafile from InnoDB. To decrease the
size of your database you have to use @file{mysqldump} to dump
size of your database you have to use @file{mysqldump} to dump
...
@@ -42336,8 +42347,8 @@ if(mysql_drop_db(&mysql, "my_database"))
...
@@ -42336,8 +42347,8 @@ if(mysql_drop_db(&mysql, "my_database"))
@subsubheading Description
@subsubheading Description
Instructs the server to write some debug information to the log.
The
Instructs the server to write some debug information to the log.
For
connected user must have the @strong{SUPER} privilege for this to work
.
this to work, the connected user must have the @strong{super} privilege
.
@subsubheading Return Values
@subsubheading Return Values
...
@@ -46476,7 +46487,7 @@ If you need more connections than the default (100), then you should restart
...
@@ -46476,7 +46487,7 @@ If you need more connections than the default (100), then you should restart
Note that @code{mysqld} actually allows (@code{max_connections}+1)
Note that @code{mysqld} actually allows (@code{max_connections}+1)
clients to connect. The last connection is reserved for a user with the
clients to connect. The last connection is reserved for a user with the
@strong{
SUPER
} privilege. By not giving this privilege to normal
@strong{
super
} privilege. By not giving this privilege to normal
users (they shouldn't need this), an administrator with this privilege
users (they shouldn't need this), an administrator with this privilege
can log in and use @code{SHOW PROCESSLIST} to find out what could be
can log in and use @code{SHOW PROCESSLIST} to find out what could be
wrong. @xref{SHOW}.
wrong. @xref{SHOW}.
...
@@ -46665,12 +46676,12 @@ There is a couple of different cases when you can get this error:
...
@@ -46665,12 +46676,12 @@ There is a couple of different cases when you can get this error:
@itemize @bullet
@itemize @bullet
@item
@item
You are using an older MySQL version
s ( <
3.23.0) when an in-memory
You are using an older MySQL version
(before
3.23.0) when an in-memory
temporary table becomes larger than @code{tmp_table_size} bytes.
To
temporary table becomes larger than @code{tmp_table_size} bytes.
avoid this problem, you can use the @code{-O tmp_table_size=#} option to
To avoid this problem, you can use the @code{-O tmp_table_size=#} option
@code{mysqld} to increase the temporary table size or use the SQL option
to make @code{mysqld} increase the temporary table size or use the SQL
@code{SQL_BIG_TABLES} before you issue the problematic query. @xref{SET
option @code{SQL_BIG_TABLES} before you issue the problematic query.
OPTION, ,
@code{SET OPTION}}.
@xref{SET OPTION, ,
@code{SET OPTION}}.
You can also start @code{mysqld} with the @code{--big-tables} option.
You can also start @code{mysqld} with the @code{--big-tables} option.
This is exactly the same as using @code{SQL_BIG_TABLES} for all queries.
This is exactly the same as using @code{SQL_BIG_TABLES} for all queries.
...
@@ -46679,28 +46690,32 @@ In MySQL Version 3.23, in-memory temporary tables will automatically be
...
@@ -46679,28 +46690,32 @@ In MySQL Version 3.23, in-memory temporary tables will automatically be
converted to a disk-based @code{MyISAM} table after the table size gets
converted to a disk-based @code{MyISAM} table after the table size gets
bigger than @code{tmp_table_size}.
bigger than @code{tmp_table_size}.
@item
@item
You are using InnoDB tables and run out of room in the InnoDB tablespace.
You are using @code{InnoDB} tables and run out of room in the
In this case the solution is to add extend the InnoDB table space.
@code{InnoDB} tablespace. In this case the solution is to extend the
@code{InnoDB} tablespace.
@item
@item
You are using ISAM/MyISAM tables on a OS that only supports 2G files
You are using @code{ISAM} or @code{MyISAM} tables on an OS that only
and you have hit this limit for the data or index file.
supports files of 2G in size and you have hit this limit for the data
or index file.
@item
@item
You are using
MyISAM tables and the needed data or index size is bigger
You are using
@code{MyISAM} tables and the needed data or index size is
than what MySQL has allocated pointers for. (If you don't specify
bigger
than what MySQL has allocated pointers for. (If you don't specify
@code{MAX_ROWS} to @code{CREATE TABLE} MySQL will only allocate pointers
@code{MAX_ROWS} to @code{CREATE TABLE} MySQL will only allocate pointers
to hold 4G of data).
to hold 4G of data).
One can check the maximum data/index sizes by doing @code{SHOW TABLE
You can check the maximum data/index sizes by doing
STATUS FROM database LIKE 'table_name} or using @code{myisamchk -dv
@example
database/table_name}.
SHOW TABLE STATUS FROM database LIKE 'table_name';
@end example
or using @code{myisamchk -dv database/table_name}.
If this is the problem, you can fix it by doing something like:
If this is the problem, you can fix it by doing something like:
@example
@code{ALTER TABLE table_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=XXX}.
ALTER TABLE table_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
@end example
You only have to specify @code{AVG_ROW_LENGTH} for tables with BLOB/TEXT
You only have to specify @code{AVG_ROW_LENGTH} for tables with BLOB/TEXT
fields as in this case MySQL can't optimise the
needed space just
based
fields as in this case MySQL can't optimise the
space required
based
on the number of rows.
on
ly on
the number of rows.
@end itemize
@end itemize
...
@@ -49442,10 +49457,10 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
...
@@ -49442,10 +49457,10 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet
@itemize @bullet
@item
@item
Added privileges @
code{CREATE TEMPORARY TABLE}, @code{LOCK TABLES
},
Added privileges @
strong{create temporary table}, @strong{lock tables
},
@
code{REPLICATION CLIENT}, @code{REPLICATION SLAVE}, @code{SHOW
@
strong{replication client}, @strong{replication slave},
DATABASES} and @code{SUPER}. To use these, one must run th
e
@strong{show databases} and @strong{super}. To use these, you must hav
e
@code{mysql_fix_privilege_tables}
.
run the @code{mysql_fix_privilege_tables} script after upgrading
.
@item
@item
Fixed query cache align data bug.
Fixed query cache align data bug.
@item
@item
...
@@ -53528,8 +53543,9 @@ Changed optimiser to make it better at deciding when to do a full join
...
@@ -53528,8 +53543,9 @@ Changed optimiser to make it better at deciding when to do a full join
and when using keys.
and when using keys.
@item
@item
You can now use @code{mysqladmin proc} to display information about your own
You can now use @code{mysqladmin proc} to display information about your own
threads. Only users with the @strong{PROCESS} privilege can get
threads. Only users with the @strong{process} privilege can get
information about all threads. (In 4.0.2 one need the @strong{SUPER} privilege for this.)
information about all threads.
(In 4.0.2 one needs the @strong{super} privilege for this.)
@item
@item
Added handling of formats @code{YYMMDD}, @code{YYYYMMDD},
Added handling of formats @code{YYMMDD}, @code{YYYYMMDD},
@code{YYMMDDHHMMSS} for numbers when using @code{DATETIME} and
@code{YYMMDDHHMMSS} for numbers when using @code{DATETIME} and
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