'\" t
.\"     Title: mysql_upgrade
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\"      Date: 12/13/2024
.\"    Manual: MySQL Database System
.\"    Source: MySQL 8.0
.\"  Language: English
.\"
.TH "MYSQL_UPGRADE" "1" "12/13/2024" "MySQL 8\&.0" "MySQL Database System"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
mysql_upgrade \- check and upgrade MySQL tables
.SH "SYNOPSIS"
.HP \w'\fBmysql_upgrade\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR
.SH "DESCRIPTION"
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
As of MySQL 8\&.0\&.16, the MySQL server performs the upgrade tasks previously handled by
\fBmysql_upgrade\fR
(for details, see
Section\ \&3.4, \(lqWhat the MySQL Upgrade Process Upgrades\(rq)\&. Consequently,
\fBmysql_upgrade\fR
is unneeded and is deprecated as of that version; expect it to be removed in a future version of MySQL\&. Because
\fBmysql_upgrade\fR
no longer performs upgrade tasks, it exits with status 0 unconditionally\&.
.sp .5v
.RE
.PP
Each time you upgrade MySQL, you should execute
\fBmysql_upgrade\fR, which looks for incompatibilities with the upgraded MySQL server:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It upgrades the system tables in the
mysql
schema so that you can take advantage of new privileges or capabilities that might have been added\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It upgrades the Performance Schema,
INFORMATION_SCHEMA, and
sys
schema\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It examines user schemas\&.
.RE
.PP
If
\fBmysql_upgrade\fR
finds that a table has a possible incompatibility, it performs a table check and, if problems are found, attempts a table repair\&. If the table cannot be repaired, see
Section\ \&3.14, \(lqRebuilding or Repairing Tables or Indexes\(rq
for manual table repair strategies\&.
.PP
\fBmysql_upgrade\fR
communicates directly with the MySQL server, sending it the SQL statements required to perform an upgrade\&.
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBCaution\fR
.ps -1
.br
.PP
You should always back up your current MySQL installation
\fIbefore\fR
performing an upgrade\&. See
Section\ \&9.2, \(lqDatabase Backup Methods\(rq\&.
.PP
Some upgrade incompatibilities may require special handling
\fIbefore\fR
upgrading your MySQL installation and running
\fBmysql_upgrade\fR\&. See
Chapter\ \&3, Upgrading MySQL, for instructions on determining whether any such incompatibilities apply to your installation and how to handle them\&.
.sp .5v
.RE
.PP
Use
\fBmysql_upgrade\fR
like this:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
Ensure that the server is running\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
Invoke
\fBmysql_upgrade\fR
to upgrade the system tables in the
mysql
schema and check and repair tables in other schemas:
.sp
.if n \{\
.RS 4
.\}
.nf
mysql_upgrade [\fIoptions\fR]
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  3." 4.2
.\}
Stop the server and restart it so that any system table changes take effect\&.
.RE
.PP
If you have multiple MySQL server instances to upgrade, invoke
\fBmysql_upgrade\fR
with connection parameters appropriate for connecting to each of the desired servers\&. For example, with servers running on the local host on parts 3306 through 3308, upgrade each of them by connecting to the appropriate port:
.sp
.if n \{\
.RS 4
.\}
.nf
mysql_upgrade \-\-protocol=tcp \-P 3306 [\fIother_options\fR]
mysql_upgrade \-\-protocol=tcp \-P 3307 [\fIother_options\fR]
mysql_upgrade \-\-protocol=tcp \-P 3308 [\fIother_options\fR]
.fi
.if n \{\
.RE
.\}
.PP
For local host connections on Unix, the
\fB\-\-protocol=tcp\fR
option forces a connection using TCP/IP rather than the Unix socket file\&.
.PP
By default,
\fBmysql_upgrade\fR
runs as the MySQL
root
user\&. If the
root
password is expired when you run
\fBmysql_upgrade\fR, it displays a message that your password is expired and that
\fBmysql_upgrade\fR
failed as a result\&. To correct this, reset the
root
password to unexpire it and run
\fBmysql_upgrade\fR
again\&. First, connect to the server as
root:
.sp
.if n \{\
.RS 4
.\}
.nf
$> \fBmysql \-u root \-p\fR
Enter password: \fB****\fR  <\- enter root password here
.fi
.if n \{\
.RE
.\}
.PP
Reset the password using
ALTER USER:
.sp
.if n \{\
.RS 4
.\}
.nf
mysql> \fBALTER USER USER() IDENTIFIED BY \*(Aq\fR\fB\fIroot\-password\fR\fR\fB\*(Aq;\fR
.fi
.if n \{\
.RE
.\}
.PP
Then exit
\fBmysql\fR
and run
\fBmysql_upgrade\fR
again:
.sp
.if n \{\
.RS 4
.\}
.nf
$> \fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
If you run the server with the
disabled_storage_engines
system variable set to disable certain storage engines (for example,
MyISAM),
\fBmysql_upgrade\fR
might fail with an error like this:
.sp
.if n \{\
.RS 4
.\}
.nf
mysql_upgrade: [ERROR] 3161: Storage engine MyISAM is disabled
(Table creation is disallowed)\&.
.fi
.if n \{\
.RE
.\}
.PP
To handle this, restart the server with
disabled_storage_engines
disabled\&. Then you should be able to run
\fBmysql_upgrade\fR
successfully\&. After that, restart the server with
disabled_storage_engines
set to its original value\&.
.sp .5v
.RE
.PP
Unless invoked with the
\fB\-\-upgrade\-system\-tables\fR
option,
\fBmysql_upgrade\fR
processes all tables in all user schemas as necessary\&. Table checking might take a long time to complete\&. Each table is locked and therefore unavailable to other sessions while it is being processed\&. Check and repair operations can be time\-consuming, particularly for large tables\&. Table checking uses the
FOR UPGRADE
option of the
CHECK TABLE
statement\&. For details about what this option entails, see
Section\ \&15.7.3.2, \(lqCHECK TABLE Statement\(rq\&.
.PP
\fBmysql_upgrade\fR
marks all checked and repaired tables with the current MySQL version number\&. This ensures that the next time you run
\fBmysql_upgrade\fR
with the same version of the server, it can be determined whether there is any need to check or repair a given table again\&.
.PP
\fBmysql_upgrade\fR
saves the MySQL version number in a file named
mysql_upgrade_info
in the data directory\&. This is used to quickly check whether all tables have been checked for this release so that table\-checking can be skipped\&. To ignore this file and perform the check regardless, use the
\fB\-\-force\fR
option\&.
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
The
mysql_upgrade_info
file is deprecated; expect it to be removed in a future version of MySQL\&.
.sp .5v
.RE
.PP
\fBmysql_upgrade\fR
checks
mysql\&.user
system table rows and, for any row with an empty
plugin
column, sets that column to
\*(Aqmysql_native_password\*(Aq
if the credentials use a hash format compatible with that plugin\&. Rows with a pre\-4\&.1 password hash must be upgraded manually\&.
.PP
\fBmysql_upgrade\fR
does not upgrade the contents of the time zone tables or help tables\&. For upgrade instructions, see
Section\ \&7.1.15, \(lqMySQL Server Time Zone Support\(rq, and
Section\ \&7.1.17, \(lqServer-Side Help Support\(rq\&.
.PP
Unless invoked with the
\fB\-\-skip\-sys\-schema\fR
option,
\fBmysql_upgrade\fR
installs the
sys
schema if it is not installed, and upgrades it to the current version otherwise\&. An error occurs if a
sys
schema exists but has no
version
view, on the assumption that its absence indicates a user\-created schema:
.sp
.if n \{\
.RS 4
.\}
.nf
A sys schema exists with no sys\&.version view\&. If
you have a user created sys schema, this must be renamed for the
upgrade to succeed\&.
.fi
.if n \{\
.RE
.\}
.PP
To upgrade in this case, remove or rename the existing
sys
schema first\&.
.PP
\fBmysql_upgrade\fR
supports the following options, which can be specified on the command line or in the
[mysql_upgrade]
and
[client]
groups of an option file\&. For information about option files used by MySQL programs, see
Section\ \&6.2.2.2, \(lqUsing Option Files\(rq\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-help\fR
.TS
allbox tab(:);
lB l.
T{
Command-Line Format
T}:T{
--help
T}
.TE
.sp 1
Display a short help message and exit\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-bind\-address=\fR\fB\fIip_address\fR\fR
.TS
allbox tab(:);
lB l.
T{
Command-Line Format
T}:T{
--bind-address=ip_address
T}
.TE
.sp 1
On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-character\-sets\-dir=\fR\fB\fIdir_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--character-sets-dir=dir_name
T}
T{
Type
T}:T{
Directory name
T}
.TE
.sp 1
The directory where character sets are installed\&. See
Section\ \&12.15, \(lqCharacter Set Configuration\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-compress\fR,
\fB\-C\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--compress[={OFF|ON}]
T}
T{
Deprecated
T}:T{
8.0.18
T}
T{
Type
T}:T{
Boolean
T}
T{
Default Value
T}:T{
OFF
T}
.TE
.sp 1
Compress all information sent between the client and the server if possible\&. See
Section\ \&6.2.8, \(lqConnection Compression Control\(rq\&.
.sp
As of MySQL 8\&.0\&.18, this option is deprecated\&. Expect it to be removed in a future version of MySQL\&. See
the section called \(lqConfiguring Legacy Connection Compression\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-compression\-algorithms=\fR\fB\fIvalue\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--compression-algorithms=value
T}
T{
Introduced
T}:T{
8.0.18
T}
T{
Type
T}:T{
Set
T}
T{
Default Value
T}:T{
uncompressed
T}
T{
Valid Values
T}:T{
.PP
zlib
.PP
zstd
.PP
uncompressed
T}
.TE
.sp 1
The permitted compression algorithms for connections to the server\&. The available algorithms are the same as for the
protocol_compression_algorithms
system variable\&. The default value is
uncompressed\&.
.sp
For more information, see
Section\ \&6.2.8, \(lqConnection Compression Control\(rq\&.
.sp
This option was added in MySQL 8\&.0\&.18\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--debug[=#]
T}
T{
Type
T}:T{
String
T}
T{
Default Value
T}:T{
d:t:O,/tmp/mysql_upgrade.trace
T}
.TE
.sp 1
Write a debugging log\&. A typical
\fIdebug_options\fR
string is
d:t:o,\fIfile_name\fR\&. The default is
d:t:O,/tmp/mysql_upgrade\&.trace\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-debug\-check\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--debug-check
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Print some debugging information when the program exits\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-debug\-info\fR,
\fB\-T\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--debug-info
T}
T{
Type
T}:T{
Boolean
T}
T{
Default Value
T}:T{
FALSE
T}
.TE
.sp 1
Print debugging information and memory and CPU usage statistics when the program exits\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-default\-auth=\fR\fB\fIplugin\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--default-auth=plugin
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
A hint about which client\-side authentication plugin to use\&. See
Section\ \&8.2.17, \(lqPluggable Authentication\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--default-character-set=name
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
Use
\fIcharset_name\fR
as the default character set\&. See
Section\ \&12.15, \(lqCharacter Set Configuration\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--defaults-extra-file=file_name
T}
T{
Type
T}:T{
File name
T}
.TE
.sp 1
Read this option file after the global option file but (on Unix) before the user option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&. If
\fIfile_name\fR
is not an absolute path name, it is interpreted relative to the current directory\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&6.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--defaults-file=file_name
T}
T{
Type
T}:T{
File name
T}
.TE
.sp 1
Use only the given option file\&. If the file does not exist or is otherwise inaccessible, an error occurs\&. If
\fIfile_name\fR
is not an absolute path name, it is interpreted relative to the current directory\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&6.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-defaults\-group\-suffix=\fR\fB\fIstr\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--defaults-group-suffix=str
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
Read not only the usual option groups, but also groups with the usual names and a suffix of
\fIstr\fR\&. For example,
\fBmysql_upgrade\fR
normally reads the
[client]
and
[mysql_upgrade]
groups\&. If this option is given as
\fB\-\-defaults\-group\-suffix=_other\fR,
\fBmysql_upgrade\fR
also reads the
[client_other]
and
[mysql_upgrade_other]
groups\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&6.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-force\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--force
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Ignore the
mysql_upgrade_info
file and force execution even if
\fBmysql_upgrade\fR
has already been executed for the current version of MySQL\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-get\-server\-public\-key\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--get-server-public-key
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Request from the server the public key required for RSA key pair\-based password exchange\&. This option applies to clients that authenticate with the
caching_sha2_password
authentication plugin\&. For that plugin, the server does not send the public key unless requested\&. This option is ignored for accounts that do not authenticate with that plugin\&. It is also ignored if RSA\-based password exchange is not used, as is the case when the client connects to the server using a secure connection\&.
.sp
If
\fB\-\-server\-public\-key\-path=\fR\fB\fIfile_name\fR\fR
is given and specifies a valid public key file, it takes precedence over
\fB\-\-get\-server\-public\-key\fR\&.
.sp
For information about the
caching_sha2_password
plugin, see
Section\ \&8.4.1.2, \(lqCaching SHA-2 Pluggable Authentication\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-host=\fR\fB\fIhost_name\fR\fR,
\fB\-h \fR\fB\fIhost_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--host=name
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
Connect to the MySQL server on the given host\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-login\-path=\fR\fB\fIname\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--login-path=name
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
Read options from the named login path in the
\&.mylogin\&.cnf
login path file\&. A
\(lqlogin path\(rq
is an option group containing options that specify which MySQL server to connect to and which account to authenticate as\&. To create or modify a login path file, use the
\fBmysql_config_editor\fR
utility\&. See
mysql_config_editor(1)\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&6.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-max\-allowed\-packet=\fR\fB\fIvalue\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--max-allowed-packet=value
T}
T{
Type
T}:T{
Integer
T}
T{
Default Value
T}:T{
25165824
T}
T{
Minimum Value
T}:T{
4096
T}
T{
Maximum Value
T}:T{
2147483648
T}
.TE
.sp 1
The maximum size of the buffer for client/server communication\&. The default value is 24MB\&. The minimum and maximum values are 4KB and 2GB\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-net\-buffer\-length=\fR\fB\fIvalue\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--net-buffer-length=value
T}
T{
Type
T}:T{
Integer
T}
T{
Default Value
T}:T{
1047552
T}
T{
Minimum Value
T}:T{
4096
T}
T{
Maximum Value
T}:T{
16777216
T}
.TE
.sp 1
The initial size of the buffer for client/server communication\&. The default value is 1MB − 1KB\&. The minimum and maximum values are 4KB and 16MB\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-no\-defaults\fR
.TS
allbox tab(:);
lB l.
T{
Command-Line Format
T}:T{
--no-defaults
T}
.TE
.sp 1
Do not read any option files\&. If program startup fails due to reading unknown options from an option file,
\fB\-\-no\-defaults\fR
can be used to prevent them from being read\&.
.sp
The exception is that the
\&.mylogin\&.cnf
file is read in all cases, if it exists\&. This permits passwords to be specified in a safer way than on the command line even when
\fB\-\-no\-defaults\fR
is used\&. To create
\&.mylogin\&.cnf, use the
\fBmysql_config_editor\fR
utility\&. See
mysql_config_editor(1)\&.
.sp
For additional information about this and other option\-file options, see
Section\ \&6.2.2.3, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR,
\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--password[=name]
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
The password of the MySQL account used for connecting to the server\&. The password value is optional\&. If not given,
\fBmysql_upgrade\fR
prompts for one\&. If given, there must be
\fIno space\fR
between
\fB\-\-password=\fR
or
\fB\-p\fR
and the password following it\&. If no password option is specified, the default is to send no password\&.
.sp
Specifying a password on the command line should be considered insecure\&. To avoid giving the password on the command line, use an option file\&. See
Section\ \&8.1.2.1, \(lqEnd-User Guidelines for Password Security\(rq\&.
.sp
To explicitly specify that there is no password and that
\fBmysql_upgrade\fR
should not prompt for one, use the
\fB\-\-skip\-password\fR
option\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-pipe\fR,
\fB\-W\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--pipe
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
On Windows, connect to the server using a named pipe\&. This option applies only if the server was started with the
named_pipe
system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
named_pipe_full_access_group
system variable\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-plugin\-dir=\fR\fB\fIdir_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--plugin-dir=dir_name
T}
T{
Type
T}:T{
Directory name
T}
.TE
.sp 1
The directory in which to look for plugins\&. Specify this option if the
\fB\-\-default\-auth\fR
option is used to specify an authentication plugin but
\fBmysql_upgrade\fR
does not find it\&. See
Section\ \&8.2.17, \(lqPluggable Authentication\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-port=\fR\fB\fIport_num\fR\fR,
\fB\-P \fR\fB\fIport_num\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--port=#
T}
T{
Type
T}:T{
Numeric
T}
.TE
.sp 1
For TCP/IP connections, the port number to use\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-print\-defaults\fR
.TS
allbox tab(:);
lB l.
T{
Command-Line Format
T}:T{
--print-defaults
T}
.TE
.sp 1
Print the program name and all options that it gets from option files\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--protocol=name
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
The transport protocol to use for connecting to the server\&. It is useful when the other connection parameters normally result in use of a protocol other than the one you want\&. For details on the permissible values, see
Section\ \&6.2.7, \(lqConnection Transport Protocols\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-server\-public\-key\-path=\fR\fB\fIfile_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--server-public-key-path=file_name
T}
T{
Type
T}:T{
File name
T}
.TE
.sp 1
The path name to a file in PEM format containing a client\-side copy of the public key required by the server for RSA key pair\-based password exchange\&. This option applies to clients that authenticate with the
sha256_password
or
caching_sha2_password
authentication plugin\&. This option is ignored for accounts that do not authenticate with one of those plugins\&. It is also ignored if RSA\-based password exchange is not used, as is the case when the client connects to the server using a secure connection\&.
.sp
If
\fB\-\-server\-public\-key\-path=\fR\fB\fIfile_name\fR\fR
is given and specifies a valid public key file, it takes precedence over
\fB\-\-get\-server\-public\-key\fR\&.
.sp
For
sha256_password, this option applies only if MySQL was built using OpenSSL\&.
.sp
For information about the
sha256_password
and
caching_sha2_password
plugins, see
Section\ \&8.4.1.3, \(lqSHA-256 Pluggable Authentication\(rq, and
Section\ \&8.4.1.2, \(lqCaching SHA-2 Pluggable Authentication\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--shared-memory-base-name=name
T}
T{
Platform Specific
T}:T{
Windows
T}
.TE
.sp 1
On Windows, the shared\-memory name to use for connections made using shared memory to a local server\&. The default value is
MYSQL\&. The shared\-memory name is case\-sensitive\&.
.sp
This option applies only if the server was started with the
shared_memory
system variable enabled to support shared\-memory connections\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-skip\-sys\-schema\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--skip-sys-schema
T}
T{
Type
T}:T{
Boolean
T}
T{
Default Value
T}:T{
FALSE
T}
.TE
.sp 1
By default,
\fBmysql_upgrade\fR
installs the
sys
schema if it is not installed, and upgrades it to the current version otherwise\&. The
\fB\-\-skip\-sys\-schema\fR
option suppresses this behavior\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-socket=\fR\fB\fIpath\fR\fR,
\fB\-S \fR\fB\fIpath\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--socket={file_name|pipe_name}
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
For connections to
localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&.
.sp
On Windows, this option applies only if the server was started with the
named_pipe
system variable enabled to support named\-pipe connections\&. In addition, the user making the connection must be a member of the Windows group specified by the
named_pipe_full_access_group
system variable\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-ssl*\fR
Options that begin with
\fB\-\-ssl\fR
specify whether to connect to the server using encryption and indicate where to find SSL keys and certificates\&. See
the section called \(lqCommand Options for Encrypted Connections\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-ssl\-fips\-mode={OFF|ON|STRICT}\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--ssl-fips-mode={OFF|ON|STRICT}
T}
T{
Deprecated
T}:T{
8.0.34
T}
T{
Type
T}:T{
Enumeration
T}
T{
Default Value
T}:T{
OFF
T}
T{
Valid Values
T}:T{
.PP
OFF
.PP
ON
.PP
STRICT
T}
.TE
.sp 1
Controls whether to enable FIPS mode on the client side\&. The
\fB\-\-ssl\-fips\-mode\fR
option differs from other
\fB\-\-ssl\-\fR\fB\fIxxx\fR\fR
options in that it is not used to establish encrypted connections, but rather to affect which cryptographic operations to permit\&. See
Section\ \&8.8, \(lqFIPS Support\(rq\&.
.sp
These
\fB\-\-ssl\-fips\-mode\fR
values are permitted:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
OFF: Disable FIPS mode\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ON: Enable FIPS mode\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
STRICT: Enable
\(lqstrict\(rq
FIPS mode\&.
.RE
.sp
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
If the OpenSSL FIPS Object Module is not available, the only permitted value for
\fB\-\-ssl\-fips\-mode\fR
is
OFF\&. In this case, setting
\fB\-\-ssl\-fips\-mode\fR
to
ON
or
STRICT
causes the client to produce a warning at startup and to operate in non\-FIPS mode\&.
.sp .5v
.RE
As of MySQL 8\&.0\&.34, this option is deprecated\&. Expect it to be removed in a future version of MySQL\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-tls\-ciphersuites=\fR\fB\fIciphersuite_list\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--tls-ciphersuites=ciphersuite_list
T}
T{
Introduced
T}:T{
8.0.16
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
The permissible ciphersuites for encrypted connections that use TLSv1\&.3\&. The value is a list of one or more colon\-separated ciphersuite names\&. The ciphersuites that can be named for this option depend on the SSL library used to compile MySQL\&. For details, see
Section\ \&8.3.2, \(lqEncrypted Connection TLS Protocols and Ciphers\(rq\&.
.sp
This option was added in MySQL 8\&.0\&.16\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-tls\-version=\fR\fB\fIprotocol_list\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--tls-version=protocol_list
T}
T{
Type
T}:T{
String
T}
T{
Default Value (≥ 8.0.16)
T}:T{
.PP
TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
(OpenSSL 1.1.1 or higher)
.PP
TLSv1,TLSv1.1,TLSv1.2
(otherwise)
T}
T{
Default Value (≤ 8.0.15)
T}:T{
TLSv1,TLSv1.1,TLSv1.2
T}
.TE
.sp 1
The permissible TLS protocols for encrypted connections\&. The value is a list of one or more comma\-separated protocol names\&. The protocols that can be named for this option depend on the SSL library used to compile MySQL\&. For details, see
Section\ \&8.3.2, \(lqEncrypted Connection TLS Protocols and Ciphers\(rq\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-upgrade\-system\-tables\fR,
\fB\-s\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--upgrade-system-tables
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Upgrade only the system tables in the
mysql
schema, do not upgrade user schemas\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-user=\fR\fB\fIuser_name\fR\fR,
\fB\-u \fR\fB\fIuser_name\fR\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--user=name
T}
T{
Type
T}:T{
String
T}
.TE
.sp 1
The user name of the MySQL account to use for connecting to the server\&. The default user name is
root\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-verbose\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--verbose
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Verbose mode\&. Print more information about what the program does\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-version\-check\fR,
\fB\-k\fR
.TS
allbox tab(:);
lB l
lB l.
T{
Command-Line Format
T}:T{
--version-check
T}
T{
Type
T}:T{
Boolean
T}
.TE
.sp 1
Check the version of the server to which
\fBmysql_upgrade\fR
is connecting to verify that it is the same as the version for which
\fBmysql_upgrade\fR
was built\&. If not,
\fBmysql_upgrade\fR
exits\&. This option is enabled by default; to disable the check, use
\fB\-\-skip\-version\-check\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-write\-binlog\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--write-binlog
T}
T{
Type
T}:T{
Boolean
T}
T{
Default Value
T}:T{
OFF
T}
.TE
.sp 1
By default, binary logging by
\fBmysql_upgrade\fR
is disabled\&. Invoke the program with
\fB\-\-write\-binlog\fR
if you want its actions to be written to the binary log\&.
.sp
When the server is running with global transaction identifiers (GTIDs) enabled (gtid_mode=ON), do not enable binary logging by
\fBmysql_upgrade\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB\-\-zstd\-compression\-level=\fR\fB\fIlevel\fR\fR
.TS
allbox tab(:);
lB l
lB l
lB l.
T{
Command-Line Format
T}:T{
--zstd-compression-level=#
T}
T{
Introduced
T}:T{
8.0.18
T}
T{
Type
T}:T{
Integer
T}
.TE
.sp 1
The compression level to use for connections to the server that use the
zstd
compression algorithm\&. The permitted levels are from 1 to 22, with larger values indicating increasing levels of compression\&. The default
zstd
compression level is 3\&. The compression level setting has no effect on connections that do not use
zstd
compression\&.
.sp
For more information, see
Section\ \&6.2.8, \(lqConnection Compression Control\(rq\&.
.sp
This option was added in MySQL 8\&.0\&.18\&.
.RE
.SH "COPYRIGHT"
.br
.PP
Copyright \(co 1997, 2024, Oracle and/or its affiliates.
.PP
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
.PP
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
.PP
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
.sp
.SH "SEE ALSO"
For more information, please refer to the MySQL Reference Manual,
which may already be installed locally and which is also available
online at http://dev.mysql.com/doc/.
.SH AUTHOR
Oracle Corporation (http://dev.mysql.com/).
