'\" t .\" Title: mysql_upgrade .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 11/27/2023 .\" Manual: MySQL Database System .\" Source: MySQL 8.0 .\" Language: English .\" .TH "MYSQL_UPGRADE" "1" "11/27/2023" "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\ \&2.10.3, \(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\ \&2.10.13, \(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\ \&7.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 Section\ \&2.10, \(lqUpgrading MySQL\(rq, 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\ \&13.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\ \&5.1.15, \(lqMySQL Server Time Zone Support\(rq, and Section\ \&5.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\ \&4.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\ \&10.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\ \&4.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\ \&4.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\ \&6.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\ \&10.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\ \&4.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\ \&4.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\ \&4.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\ \&6.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\ \&4.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\ \&4.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\ \&6.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\ \&6.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\ \&4.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\ \&6.4.1.3, \(lqSHA-256 Pluggable Authentication\(rq, and Section\ \&6.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\ \&6.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\ \&6.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\ \&6.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\ \&4.2.8, \(lqConnection Compression Control\(rq\&. .sp This option was added in MySQL 8\&.0\&.18\&. .RE .SH "COPYRIGHT" .br .PP Copyright \(co 1997, 2023, 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/).